免口令登录远程SSH服务的方法介绍

发布时间:2020-01-15编辑:脚本学堂
本文介绍下,实现不用口令(密码)登录远程ssh服务的具体方法,有需要的朋友,参考下吧。

要实现不用输入密码即可登录远程ssh服务器,需要这样操作:
切换到本地~/.ssh目录下,执行下面命令生成本地账户的RSA密钥对。
需要一个公钥和一个私钥,私钥自己保留,公钥是保存在远程服务器上的。

原理分析:当用ssh连接远程服务器时,服务器会找到对应的公钥,然后用那个公钥对一串东西进行加密,发送给客户端,客户端必须使用本地的私钥对这串东西进行解密,把结果返回给服务器,服务器核对无误,客户端便成功登录。

生成密钥的步骤:
 

复制代码 代码示例:
root@toppc:~/.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@toppc
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@toppc:~/.ssh# scp id_rsa.pub root@www.jb200.com:/root/.ssh/authorized_keys

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

复制代码 代码示例:

root@toppc:~# echo "ssh root@www.jb200.com -D7070" > /usr/local/bin/xx
root@toppc:~# chmod +x /usr/local/bin/xx
root@toppc:~# 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@toppc:~#