在windows上使用putty远程登录免输密码的操作方法

第一步:生成密匙

  1. 运行puttygen.exe,在最底部选择需要的密匙类型(parameters)和长度(bits)。
    putty默认使用SSH2协议,长度默认值为1024,我们暂且选用SSH1协议,后面讨论使用SSH2协议与使用SSH1协议设置上的不同。
  2. 点击Generate生成密匙,生成后的Key passphrase(密钥密码) 和 Confirm passphrase(确认密码)两项可以保持为空 ,passphrase是用来保护私匙的密码,如果没什么特别高的安全要求就不用了,免得登录时还要输入一次密码。后面讨论如果输入passphrase,也可以自动登录系统。点击 Save public key 按钮和 Save private key 按钮分别保存公匙和私匙例如 id_rsa1.pub 和 id_rsa1.prv。

第二步:上传密匙

把公钥文件传送到远程开启sshd的设备上。进入$HOME/.ssh目录下,打开authorized_keys文件,如果没有就新建一个,新增一行内容:ssh-rsa xxxx,其中xxxx是刚才的公钥(第二步中保存的公钥文件中的BEGIN和END之间的那部分)。ssh-rsa表示使用的是rsa算法。这些必须是同一行,不能分成多行。
请特别注意权限的设置:
chmod 600 $HOME/.ssh/authorized_keys
chmod g-w $HOME $HOME/.ssh/ $HOME/.ssh/authorized_keys

第三步:设置Putty

启动Putty,设置好session的各项参数(如IP address,protocol选择SSH),然后从左边选择SSH,”Preferred SSH protocol version:”,
这时我们用的是SSH1协议,那么我们就选择协议版本1,再“SSH->Auth”,”Private key file for authentication:” 点击 Browse 按钮,选择 id_rsa1.prv 文件。
再从左边选择 Session,然后点击 Save 按钮把修改保存下来。然后点击Open 按钮就可以登录了。
如果上面的操作都没有问题,那这时应该就自动登录了,无需输入密码。 正常情况下会显示如下:
login as: root
Authenticating with public key "rsa-key-20050328"
Last login: Mon Mar 28 14:39:13 2005 from 192.168.0.2
有了上面第二行的信息,表明你已经正常启用SSH通讯了。

PS:
如果我们添加公钥后,还是无法访问,也可能是主机上面的一个文件known_hosts中已经存在访问机器的ip信息,删除重新访问即可。
另外,如果以上方法尝试过后还是不行,可能是因为登录失败次数过多被锁定,这个时候我们就需要去看看我们的系统日志(/var/log/messages),将之前的锁定信息日志删除就可以了。

问题:
(1)Connection closed by $IP
可能是超过系统默认失败次数了,然后清理就可以了。
(2)在前面步骤都正确无误的情况下,每次远程登录还是提示让输入密码,这时候有可能是权限问题:
chmod 644 authorized_keys再次登录就ok了。
如果是Red Hat 5.6的话,最好改成600,否则认为是不安全的。

pscp的使用
putty可以远程登录主机进行操作,而pscp则可以向远程主机传输文件,而且使用也十分简单。
PSCP不像PUTTY直接运行,而是通过命令提示符运行。
在控制中转到pscp.exe文件所在的目录中,输入PSCP即可看到PSCP的具体用法。

//-----------------------------------------------------------------------
传输文件到Linux主机,例如:
pscp -r -v -i id_rsa_dell.ppk ./hello.txt jacklau@192.168.0.80:/home/jacklau
(PS:若没有私钥文件,则在回车后输入用户的登录密码即可把hello.txt传输到Linux用户主目录下)
标准格式  
pscp 传输文件目录 用户名@主机地址:接受文件目录

当然也可以从远程主机下载文件到本机,例如:
pscp -r -v -i id_rsa_dell.ppk jacklau@192.168.0.80:/etc/inittab d:\
标准格式  
pscp 用户名@主机地址:传输文件目录 本机文件目录
//-----------------------------------------------------------------------

用法:
pscp [选项] [用户名@]主机:源 目标
pscp [选项] 源 [其他源...] [用户名@]主机:目标
pscp [选项] -ls [用户名@]主机:指定文件
选项:
-V 显示版本信息后退出
-pgpfp 显示 PGP 密钥指纹后退出
-p 保留文件属性
-q 安静模式,传输过程中不显示任何信息
-r 递归拷贝目录
-v 显示详细信息
-load 会话名 载入保存的会话信息
-P 端口 指定SSH端口,默认是22
-l 用户名 指定哪个用户登录远程主机进行传输,可以与主机地址写在一起,如jacklau@192.168.0.80
-pw 密码 使用指定的密码登录
-1 -2 强制使用 SSH 协议版本
-4 -6 强制使用 IPv4 或 IPv6 版本
-C 允许压缩
-i 密钥 认证使用的密钥文件
-noagent disable use of Pageant
-agent enable use of Pageant
-batch 禁止所有交互提示
-unsafe allow server-side wildcards (DANGEROUS)
-sftp force use of SFTP protocol
-scp force use of SCP protocol

标签: SSH,无密码登录

添加新评论