putty 使用密钥自动登录 ssh

安装 openssh
sudo apt-get install openssh-server

安装好后如果没有防火墙的阻挡,那么就可以使用  putty 来远程登录 ubuntu 了。

编辑 ssh 配置文档
sudo vi /etc/ssh/sshd_config

Protocol 2 ← 这行表示仅使用SSH2
ServerKeyBits 768 ← 如果需要可以改成 1024 ,而 puttygen.exe 默认是1024 bit
PermitRootLogin no  ← 这行表示不允许用root进行登录
PermitEmptyPasswords no  ← 这行表示禁止空密码进行登录
PasswordAuthentication no ← 添加这行表示不允许密码方式的登录

增加安全性,按需设置
sudo vi /etc/hosts.deny
sshd: ALL  ← 添加这一行,屏蔽来自所有的SSH连接请求


sudo vi /etc/hosts.allow

sshd: 192.168.0.  ← 添加这一行,只允许来自内网的SSH连接请求

下面生成公钥和私钥,在普通用户下:
ssh-keygen -t rsa ← 建立公钥与私钥
Enter file in which to save the key (/home/comet/.ssh/id_rsa):  ← 钥匙的文件名,这里保持默认直接回车
Enter passphrase (empty for no passphrase):  ← 输入私钥密码
Enter same passphrase again:   ← 再次私钥输入密码
Your identification has been saved in /home/comet/.ssh/id_rsa ← 私钥的路径
Your public key has been saved in /home/comet/.ssh/id_rsa.pub ← 公钥的路径

cd ~/.ssh  ← 进入 /home/comet/.ssh
cat id_rsa.pub >> authorized_keys  ← 追加公钥到验证文件
chmod 400 authorized_keys  ← 设置验证文件为 root 只读

复制 id_rsa 到 windows 的机器上。
使用 PUTTYGEN.EXE 转换成 putty 可以使用的。
打开 PUTTYGEN.EXE ,点击 Load,选取服务器端生成的私钥,如果上面设置了私钥密码,这里就会提示输入。修改一下 key comment,如果需要密码,可以在 key passphrase 输入并确认。
点击“Save private key”,保存为 .ppk 文件,这里是 uServer.ppk

在 putty 中使用转换后的私钥登录。
打开 putty.exe ,设置好IP,然后在 Connection - SSH - Auth 的 Private key file for authentication 中选择 uServer.ppk 。然后 open  就可以使用密钥登录而不用密码了。
如果在生成 uServer.ppk 的时候没有输入密码,那么可以在 putty.exe 的 Connection - Data 的 Auto-login username 中输入私钥的用户,那么打开 session 之后就可以自动。

服务器中的用户,客户端有私钥和服务器上用户的公钥配对,即可通过用户名进行自动登录服务器。

参考:
用OpenSSH构建SSH服务器: http://www.centospub.com/make/sshd.html
PuTTY 中文教程 :http://docs.google.com/View?docid=ajbgz6fp3pjh_2dwwwwt

发表评论

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据