免口令登录远程SSH服务

切换到本地~/.ssh目录下,执行下面命令生成本地账户的RSA密钥对。需要一个公钥和一个私钥,私钥自己保留,公钥是保存在远程服务器上的。原理是,当你用ssh连接远程服务器的时候,服务器会找到对应的公钥,然后用那个公钥对一串东西进行加密,发送给客户端,客户端必须使用本地的私钥对这串东西进行解密,把结果返回给服务器,服务器核对无误,客户端便成功登录。

root@xiaoxia-pc:~/.ssh# ssh-keygen -trsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
eb:2e:9b:ed:2b:e6:0e:d7:ad:dd:ec:50:73:20:ca:77 root@xiaoxia-pc
The key’s randomart image is:
+–[ RSA 2048]—-+
| |
| |
| . . |
| . . . . |
| S . E . |
| . + o o |
| . . o o |
| o++ o + |
| +=*B…+ |
+—————–+

上传id_rsa.pub文件,把内容追加到远程服务器账户的.ssh目录下,但是要追加到authorized_keys这个文件里。因为远程服务器上的目录下默认没有authorized_keys这个文件,因此直接复制。

root@xiaoxia-pc:~/.ssh# scp id_rsa.pub root@xiaoxia.org:/root/.ssh/authorized_keys

这样再加上一个命令的快捷方式,就可以实现一键回车登录远程服务器了。可以使用-D参数,默认打开一个本地的socks5代理。

root@xiaoxia-pc:~# echo “ssh root@xiaoxia.org -D7070″ > /usr/local/bin/xx
root@xiaoxia-pc:~# chmod +x /usr/local/bin/xx
root@xiaoxia-pc:~# xx
Linux xiaoxia.org 2.6.18-238.12.1.el5.028stab091.1 #1 SMP Wed Jun 1 13:20:25 MSD 2011 i686 GNU/Linux
Ubuntu 10.10

Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/
Last login: Mon Oct 31 09:08:27 2011 from 120.196.48.170
root@xiaoxia:~#

Top Down