Putty通过SSH无密码登陆Ubuntu12.04

(1)生成公钥/私钥对

$ ssh-keygen -t rsa -P ''

注意"-P"后面输入的内容为空的时候代表不需要输入密码。
完成后会在当前用户目录下的.ssh目录下生成id_rsa,id_rsa.pub这两个文件。
(2)拷贝证书到本地机器
.ssh/id_rsa.pub拷贝下来,然后重命名成id_rsa.pub.git也就是Key加上用户名的命名方式,这样在Linux或者执行命令行的时候SSH可以自动进行用户名,密码的对应。
(3)对于Linux复制的id_rsa.pub.git添加到.ssh/authorzied_keys文件里

$ cat id_rsa.pub.git >> .ssh/authorized_keys

$ chmod 600 .ssh/authorized_keys

authorized_keys的权限要是600
(4)对于Windows,则需要把id_rsa这个文件拷贝下来,然后使用TortoiseGit自带的Puttygen转换为被TortoiseGit支持的.ppk文件。

点击"Conversions"菜单中的"Import key"选项,然后导入我们下载到的id_rsa

PuttyKeyGeneratorImportKey

导入后,

SavePPK

由于Puttygen的BUG,导致如果直接点击"Save private key",会导致生产的Public key是不正确的,因此,需要先点击"Save public key",保存为文件后,无视这个文件即可。然后接下来点击"Save private key"按钮,保存为.ppk文件,这个PPK文件才是我们需要的。

(5)修改SSHD的配置文件/etc/ssh/sshd_config
找到

#AuthorizedKeysFile %h/.ssh/authorized_keys

这句,然后去掉注释。然后重启SSH服务

$ sudo  /etc/init.d/ssh  restart

(6)修改登录认证文件,把认证信息导入到需要认证的用户目录下的.ssh/authorized_keys文件中。

以上面添加的用户git为例子,通过命令:

$ cat /etc/passwd | grep git

可以看到输出如下信息:

git:x:999:1000:git,,,:/shares:/bin/sh

从而找到用户git的工作目录在/share目录下面.

因此执行如下命令:

$ cp -r /root/.ssh /share/.ssh

$ cd /share/.ssh

$ cat id_rsa.pub >> authorized_keys

接下来,需要修改authorized_keys的所有者为用户git,否则git无法通过这个文件进行认证。

$ cd /share/.ssh

$ chown git authorized_keys

而对于管理员root而言,我们不需要执行拷贝操作,只需要修改一下SSH的配置文件,并且执行如下命令即可:

$ cat id_rsa.pub >> authorized_keys

(7)Putty设置使用PPK文件进行登陆认证

左侧栏中选择Connection->SSH->Auth:

LoginPPK
然后点击左侧栏中的Session,点击Save保存设置,然后点击Open连接服务器。
SaveSession

(8)登陆时候,还是需要输入用户名的,因为Ubuntu服务器需要根据用户名来核查证书。输入用户名后,直接回车,会发现不需要再输入密码,就直接登陆了。

putty-7

发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注