ssh远程登录时实现不输入密码

我需要创建密码,原理很简单,rsa公私钥机制,我先创建一对密钥(包含公钥和私钥),我将公钥放入远程需要登录到的那个机器上,自己保留私钥,登录远程机器时,对方验证方法为:使用公钥加密数据,谁能够解密这段数据则证明谁手里有私钥,即谁有权限登录。好了,试试吧:

[root@nancy ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa
Created directory '/root/.ssh'.
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:
27:d7:0c:5f:33:b8:40:11:72:84:61:82:ee:33:c1:28 root@nancy
The key's randomart image is:
+--[ RSA 2048]----+
|     .. ++*o     |
|    .  o.+   .   |
|   +      o . +  |
|E . +      * o o |
| . . .  S o =    |
|    +    +       |
|     o           |
|                 |
|                 |
+-----------------+


密钥创建okey了,将公钥也就是id_rsa.pub发送到远程机器上,并修改名称为authorized_keys,步骤为:


[root@nancy~]#scp /root/.ssh/id_rsa 192.168.0.171:/root/.ssh/id_rsa.pub

[root@nancy~]#ssh 192.168.0.171

[root@nancy~]#mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys

 

       如果我们在产生密钥时,没有设置密码,那么我们可以直接登录到远程机器。如果在产生密钥时输入密码了,那么就意味着我们每次登录远程那台计算机都需要输入密码,貌似比较麻烦,但是别担心,可以使用ssh-agent代理,帮我们实现自动输入passpphrase,而且只需要输入一次,以后每次都是ssh-agent代理实现。其具体操作为:

在本地计算机(相对于远程那台即是客户端)执行命令ssh-add,根据提示,输入密码......

[root@nancy~]#ssh-add

  输入密码


[root@nancy ~]# ssh 192.168.0.171
Address 192.168.0.171 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Last login: Thu Jan 21 10:51:20 2010 from 192.168.0.172


haha,成功了,看来这种方式比较简单。对了提示下,如果你想在本地使用root登录远程计算机,那需要在远程计算机的/etc/ssh/sshd.config文件的第42行上修改#PermitRootLogin no为yes才行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值