欢迎各位兄弟 发布技术文章
这里的技术是共享的
putty 端口是22000 不是22 也不是21 至少西部数码是这样子的
部署SSH证书使PuTTY免密码登陆LINUX
下载PuTTY可以从GoogleCode的项目主页上http://code.google.com/p/puttycn/
1. 用PuTTY SSH 密钥生成工具puttygen.exe生成密钥.
生成的密钥类型和位数按照默认的就行了,SSH-2 RSA,1024位
生成密钥时你需要在空白区域移动鼠标,以便产生随机数据
点击保存私钥(可以不设置密码保护),不要生成公钥,因为PuTTY生成的公钥OpenSSH无法使用.
2. 配置LINUX SSH登录
首先登入远端LINUX系统,创建~/.ssh/authorized_keys.
cd ~
mkdir ~/.ssh
vi ~/.ssh/authorized_keys
将puttygen.exe生成的公钥内容粘贴至~/.ssh/authorized_keys.
至于为什么文件名是authorized_keys,可以在/etc/ssh/sshd_config中找到下面两行
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
3. 用SSH证书登陆你的Linux服务器/VPS
Putty→会话:将服务器IP填好
Putty→连接→数据:填好自动登陆用户名( 比如 root )
Putty→连接→SSH→认证:选择认证私钥文件
回到Putty→会话:保存的会话,填个名称保存下吧,下次直接双击名称就可以登录了,赶紧登录吧.
4. 为了安全你需要取消SSH的密码认证方式.
vi /etc/ssh/sshd_config
添加下面这行
PasswordAuthentication no
重启SSH服务
service sshd restart (也可以使用全路径命令 /etc/init.d/ssh restart )
注意:如果登陆时,出现 server refused our key 的提示,请按照下面的方法解决:
修改vi /etc/ssh/sshd_config 文件(按下面设置即可)
RSAAuthentication yes # 启用 RSA 认证(默认是注释掉的,将注释去掉,如果不是yes,改为yes)
PubkeyAuthentication yes # 启用公钥认证(默认是注释掉的,将注释去掉,如果不是yes,改为yes)
PasswordAuthentication no # 禁止密码认证(改为no,默认为yes是用密码认证)
StrictModes no #修改为no,默认为yes.如果不修改用key登陆,可能会出现 server refused our key 的提示。(如果StrictModes为yes必需保证存放公钥的文件夹的拥有者与登陆用户名是相同的).“StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。)
另外,设置 authorized_keys的权限为 644 即:
chmod 644 ~/.ssh/authorized_keys
之后重新启动ssh服务:
/etc/init.d/ssh restart
来自 http://wenku.baidu.com/view/9095898f680203d8ce2f247d.html
撸前语
自从接触了 VPS 之后,就越发折腾的厉害了,不停地彻夜长撸,机器伤不起,身体也伤不起,双手也伤不起。
一直以来,都是双击打开 PuTTY ,载入,键盘敲入 root ,鼠标复制密码,右键,回车,繁琐不堪。又因庄主记性不好,并且上回网间爆出密码泄露门之后,庄主把所有密码都换成了随机数,搞得自己也扑朔迷离,没法记清。好记性不如烂笔头,这些密码便如枷锁一般,锁住了庄主的咽喉,喘不过气来。
有感与此,度娘一番 PuTTY 自动保存密码的方法,颇有收获,记录在此,分享给众基友。归纳起来,常见的 PuTTY 自动登录方法有4种:
第1撸:使用密钥登录 PuTTY
(官方推荐的安全的自动登录方法)
step0. 所需软件
putty.exe, puttygen.exe(官方)
step1. 生成密钥 运行puttygen.exe,按照默认即可:选择SSH-2 RSA、1024位的key、空白的Key passphrase,然后点击Generate,在空白区域不断随机挪动光标,直到它产生key。将它生成的那一行Public key粘贴到文件里,比如叫id_rsa2.pub;然后点击"Save private key",将对应的密钥保存下来,如id_rsa2.prv。 注意:不要直接使用点Save public key按钮后保存的文件,它的格式在后面没法用.
step2. 配置远程帐户 登录远程帐户,将Public key即id_rsa2.pub里的内容添加到相应的文件里: mkdir ~/.ssh
cat > ~/.ssh/authorized_keys
(此时粘贴内容,然后在新行里按Ctrl + D结束) 同时应该确保~/.ssh目录的权限是700。
step3. 配置Putty 进行基本设置之后,在Connection / Data分类的Auto-login username里填写你远程的用户名;然后在下面的SSH / Auth分类的Private key file for authentication里选择刚才保存的密钥文件id_rsa2.prv。 然后保存设置,登录即可。
PuTTY是开源的,我们可以很容易得到它的源代码,这是能够修改PuTTY功能的前提。在PuTTY的Connection->Data选项中有Auto-login username这一项,我们可以在源代码中定位到插入点,文件为Config.c ,Auto-login password就是要插入的密码文本框项(Line5-9)。
……
PuTTY本身没有保存密码的功能,可以用KeePass配合PuTTY实现保存密码和自动登录,设置方法:
为了方便,把Putty和KeePASS放到同一个目录下(和KeePass.exe在同一个目录)
在Putty输入服务器的IP地址,选择SSH,填写Sessions,然后点击save,保存一个会话。在下面出现了Sessions名称就说明保存成功了。
打开KeepPASS,添加一条密码记录,设置如下:
Title:填写刚才Puuty中填写的Sessions的名称
user name:填写服务器的登录用户名,例如root
Password:填写服务器的密码
Repeat:重复密码
URL: 输入: cmd://putty.exe -l {USERNAME} -load {TITLE} -pw {PASSWORD}
然后点击OK保存。
以后要登录服务器只需要在KeePass中该密码记录,然后按Ctrl+u ,KeePASS就会帮你自动登录Putty了
1. 创建putty.exe的快捷方式到桌面。
2. 运行putty,输入host name、port、saved session’s name。 点击保存,假设session名为“qa server”。然后关闭窗口。
3. 右击putty快捷方式,属性,目标,加上如下参数 -load “qa server” -ssh -l {username} -pw {password}。保存,关闭。
4. 运行putty的快捷方式,就能自动输入用户名和密码,进入远程电脑
关于自动登录(auto-login password),当然需要保存密码的功能,官方的回应是记住密码会带来显著的安全问题:任何能使用你的设备的人都能轻而易举的得到你的密码,使用它,甚至滥用他。建议通过SSH的公钥验证来自动登录,它更加方便和安全。
2010-06-27 — Unmi
Putty 基本是我在紧急时候用来登陆 Linux/Unix 终端的不二之先,因其小,开源,界面也非常实用。可是当你要在私有的机器上,经常性的要登陆很多机器的时候就觉得烦琐了,不光打开一堆的窗口,还要一遍一遍的输入用户名和密码。当然登陆用户名是可以保存的,我也是最近才注意到这一点的。Putty 不愿去保存密码是出于安全考虑,相信在多数时候确实是非常必要的。
于是我选择了 SecureCRT, 它能保存密码,而且是多 Tab 的,把 Session 改成 VT100 Linux 模式,用着一直很顺溜。然而今天却发现在 SecureCRT 终端中使用 vim 不能高亮显示语法,试过多种设置,在 Putty 中却行的,就这样又重新回到了 Putty 的怀抱。要相处得好,必须更深层次的挖掘它的潜力,其实它也可让你实现自动登陆、甚至是多 Tab 的方式。方法有三:
一:用 PuTTYgen.exe 生成 ssh 证书,可在特定的机器上自动登陆
PuTTYgen.exe 也是从 putty.exe 站点下载,http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html。对于 Linux to Linux 的 ssh 证书生成及自动登陆的方法我先前也有过一个介绍:http://unmi.cc/ssh-no-need-input-password。而怎么使用 PuTTYgen.exe 请直接参考:SSH证书让Putty免密码登陆Linux。这种方法需要在服务器端做相应的操作,本文主要想介绍第二种方法。
二:用 Putty v6.0 修改版,可保存登陆名和密码,实现自动登陆
Putty 默认版只能保存登陆名,每次需输入登陆密码,主机和登陆名是保存在注册表中的。不过因为它是开源,所以有相关需求者做了个能同时保存用户和密码的版本,这些信息是保存在文件中的。该保存登陆名和密码版可在些下载:putty_v6.0.rar。
就是设置起来有点是特别好理解,默认版本也是这样子的。操作步骤全写在下面这幅图片里了:
可以看看人家是怎么改的 PuTTY 源代码的: 修改Putty 0.6 代码支持SSH 密码保存功能
三:有了个 PuTTY Connection Manager 管理你的 PuTTY 登陆,还支持 Tab
PuTTY Connection Manager 的官方网被 Blocked 了,想窥个究竟的就勇敢的翻墙吧,http://puttycm.free.fr。这是用 C# 写的对 PuTTY 的包装程序,需要机器上安装 .NET Framework 2.0 或以上的版本,另外,可让你使用更新 PuTTY 版本。从官方截个图让大家看看:
也能兼容原来的 PuTTY 保存登陆名的方式,还可用自己的连接管理独立的保存登陆名和密码,可多 Tab 使用。如果你觉得界面复杂,可以把菜单、工具栏、状态栏什么的全隐藏了起来,看起来就和 PuTTY 一样清爽了。
为给大家省事,还是把 PuTTY Connection Manager 的程序从网站上捞下来放到这里来了:puttycm.rar。其中 puttycm.exe 是个独立执行版,要求你事前安装了 .NET Framework,puttycm0.7.1.136beta.exe 是安装版,会自动检测有没有 .NET Freamework,无则帮你下载安上。
来自 http://unmi.cc/putty-auto-login
Tips:SSH登录保存密码和自动登陆 功能开启,有风险~请三思!
相信对Putty 的口碑已经是人人皆知了,不仅在对中文字符的支持上,安全性也很不错。
HzlzH对于每次登录不同的SSH 输入不同 帐号 和密码 很头疼,毕竟在自家电脑的情况下,避免重回复输入密码是很需要的,可是Putty官方没有也不打算添加这个功能,是处于安全考虑,很有道理。
三思之后,毅然决然的使用可以保存密码的版本。由于putty是开源软件,直接修改源码,编译得到了下面这个版本,当然我懒得自己再编译生成了,现成的用着很顺手。切换主机都不带输入任何东西的,完全是一键搞定!
打包共享:[ 包内含putty-en.exe putty_zh.exe 说明.txt ]
其中 putty_en.exe就是修改版,当然是英文的,putty_zh.exe是汉化原版版,不带保存密码功能。
下载地址: Dropbox镜像 | Box.net镜像 | 115镜像
啊使用说明:这个修改版,使用后会在本目录生成sessions 和 sshhostkeys 两个文件夹,用来储存记住的信息,不直接导入注册表,即使更换电脑用起来也很方便,copy即可!
使用方法:见下图:
[ 首次设置要先输入帐号密码,再点Save 按钮!]
再次强调,软件HzlzH自己在使用,每次双击SSH名称即可直接登录成功
请君三思再三思,保存密码功能!
来自 https://zlz.im/putty-save-password/
相信对Putty 的口碑已经是人人皆知了,不仅在对中文字符的支持上,安全性也很不错。但是,对于每次登录不同的SSH 输入不同 帐号 和密码 很头疼,避免重回复输入密码是很需要的,可是Putty官方没有也不打算添加这个功能,是处于安全考虑,很有道理。
在网上淘到了两种方法,额是懒人,最喜欢putty修改版,虽然安全性稍微差一点,(*^__^*) 嘻嘻……
1. 修改版 putty,直接可用
可用连接:http://www.hzlzh.com/putty-save-password/
2. 使用SSH证书,实现putty自动登录
http://blog.mylinux ss.com/ssh-putty-certificate/
精彩的常用设置:
http://www.javaeye.com/topic/560682
来自 http://mmpp-dream-love.blog.sohu.com/143775657.html
里介绍的不是双Linux环境下的SSH证书登陆,而是Windows下用Putty证书登陆至你的Linux服务器/VPS.
目前我用的是Putty中文版,来自GoogleCode的项目:http://code.google.com/p/puttycn/
1.用PuTTY SSH 密钥生成工具puttygen.exe生成密钥.
生成的密钥类型和位数按照默认的就OK,SSH-2 RSA,1024位
生成密钥时你需要在空白区域移动鼠标,以便产生随机数据
点击保存私钥(可以不设置密码保护),不要生成公钥,因为PUTTY生成的公钥OpenSSH无法使用.
2.SSH密码方式登入远端Linux服务器/VPS,创建.ssh/authorized_keys.
vim ~/.ssh/authorized_keys
将puttygen.exe生成的公钥内容粘贴至~/.ssh/authorized_keys.
注:公钥内容就在显示的公钥(P)由OpenSSH认可: 这行字符下面.
至于为什么文件名是authorized_keys,可以在/etc/ssh/sshd_config中找到下面两行
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
3.用SSH证书登陆你的Linux服务器/VPS
Putty→会话:将服务器IP填好
Putty→连接→数据:填好自动登陆用户名
Putty→连接→SSH→认证:选择认证私钥文件
回到Putty→会话:保存的会话,填个名称保存下吧,下次直接双击名称就可以登录了,赶紧登录吧.
4.为了安全你需要取消SSH的密码认证方式.
vim /etc/ssh/sshd_config
添加下面这行
PasswordAuthentication no
重启SSH服务
service sshd restart
来自 http://www.jb51.net/LINUXjishu/33586.html
译自:http://www.vineetmanohar.com/2009/07/17/howto-ssh-without-password/
这个简单的教程讲解了如何无需输入密码 SSH 连接到远程机器。在你需频繁的登陆到同一机器,而又不得不一次次输入密码时就可以使用这一技术。这也很适于这样的场景:当你有一个脚本需要通过 SSH 从远程机器取文件或者在远程机器上执行一个任务,并且希望能自动的运行该脚本,而用不着人工去输入一个密码。
这些指令在 Linux 和 Mac 下能正常工作。你可以在 Windows 下参照同样的方法来使用 Putty,但是我这里没有针对具体 Putty 指令作描述。
目标:从本机登陆到远程服务器无需输入密码
步骤 1/2:在本机上:生成认证码
认证码是一个私钥公钥对。你的公钥也是一个 2-3 行的长长看不懂东西。公钥就像是你登录后的唯一标识。私钥就像是你的密码,但比一个规则的密码要长。你可以通过如下命令来产生你的公钥和私钥:
1 | ssh -keygen -t rsa |
Generating public/private rsa key pair.Enter file in which to save the key (/home/vineetmanohar/.ssh/id_rsa: |
接受默认的选择。按回车键。
Enter passphrase (empty for no passphrase): Enter same passphrase again: |
回车两次。密钥(passphrase) 是用来对你的私钥进行加密的,加密后就没有人能看得懂它了。然而,假如你想要无密码登陆的话,就不能对你的私钥进行加密。
The key fingerprint is: 5e:26:52:34:a1:22:18:68:11:11:7d:8d:c6:d5:4b:bf vineetmanohar@vineetmanohr.com |
刚刚做了什么?
在你的本机上的 ~/.ssh 目录中,你创建了两个文件。
1 2 | cd ~/. ssh ls -l |
-rw------- 1 vineetmanohar vineetmanohar 1675 2009-07-17 17:27 id_rsa -rw-r--r-- 1 vineetmanohar vineetmanohar 411 2009-07-17 17:27 id_rsa.pub |
id_rsa 包含了你的私钥。id_rsa.pub 中含有了你的公钥。
步骤 2/2:在远程机器上:认证无需密码的登陆
登陆到远程机器
1 | ssh hostname -l username |
The authenticity of host 'vineetmanohar.com (XXX.XXX.XXX.XX)' can't be established. RSA key fingerprint is 44.2b:93:ce:1b:1b:99:3a:6d:91:d1:50:aa:0d:87:40. Are you sure you want to continue connecting (yes/no)? |
[Unmi 注] 如果你执行 ssh hostname -l username 时,未得到上面的提示,那应该是在你的 ~/.ssh/ 目录中有一个 known_hosts 文件中包含有该远程机器的信息,那么你可把该文件删除(如果有能耐确定是其中哪一块对应于这个远程机器的话也可以只删除对应的部分),然后再执行 ssh hostname -l username 命令即可。另外命令 ssh username@hostname 是等效的。
输入 yes 并回车
Warning: Permanently added 'vineetmanohar.com,XXX.XXX.XXX.XX' (RSA) to the list of known hosts. username@vineetmanohar.com's password: |
输入密码,并回车
在远程机器上创建一个 .ssh 目录,并在其中生成一个 .authorized_keys 文件。你需要拷贝你本机上的 'id_rsa.pub' 中的全部内容贴到远端服务器的 .authorized_keys 文件中。
1 2 3 4 5 6 7 8 9 | mkdir . ssh chmod 700 . ssh cd . ssh touch authorized_keys chmod 600 authorized_keys # copy-paste the entire contents of your local machine's ~/.ssh/id_rsa.pub file in authorized_keys vi authorized_keys # logout exit |
现在你就能登陆到远程服务器时不用输入你的密码了。
# type this command from your local machine ssh hostname -l username |
SSH 可以无密码登陆了!现在,你也能进行 scp 操作而不用输入你的密码了。
本文链接 http://unmi.cc/ssh-no-need-input-password, 来自 隔叶黄莺 Unmi Blog
[版权声明]本站内文章,如未特别注明,均系原创或翻译之作,本人 Unmi 保留一切权利。本站原创及译作未经本人许可,不得用于商业用途及传统媒体。网络媒体可随意转载,或以此为基础进行演译,但务必以链接形式注明原始出处和作 者信息,否则属于侵权行为。另对本站转载他处文章,俱有说明,如有侵权请联系本人,本人将会在第一时间删除侵权文章。及此说明,重之之重。