SSH免密码登陆设置

    SSH是远程登陆Linux系统的工具,Linux系统默认安装都包含SSH服务端,客户端能够经过命令:ssh 服务器IP地址(例:ssh 192.168.100.1)或者SSH客户端软件登陆到Linux服务器。可是,默认的SSH登陆方式要求用户输入服务器目标帐号的密码。为了不繁琐的密码输入,能够为SSH配置免密码登陆。具体配置以下:ubuntu

 

假设服务器IP地址:192.168.100.1;客户端IP地址:192.168.100.2服务器

 

1. 服务器端执行命令:“james@ubuntu:~$ ssh-keygen -t rsa”,在这个过程当中会要求输入密码。为了配置无密码登陆,直接回车,过程以下:dom

 

james@ubuntu:~$ ssh-keygen -t rsassh

Generating public/private rsa key pair.ide

Enter file in which to save the key(/home/james/.ssh/id_rsa): 工具

Enter passphrase (empty for no passphrase):spa

Enter same passphrase again: server

Your identification has been saved in/home/james/.ssh/id_rsa.同步

Your public key has been saved in /home/james/.ssh/id_rsa.pub.it

The key fingerprint is:

c8:7d:5b:4f:00:51:1f:b5:3c:51:cf:8c:4b:14:82:53james@ubuntu

The key's randomart p_w_picpath is:

+--[ RSA 2048]----+

|         o=E +++|

|         o. +.=+|

|          .. +++|

|    . o     o ..|

|     o S . . o  |

|        . o o   |

|         .   .  |

|                 |

|                 |

+-----------------+

james@ubuntu:~$

 

2. 完成以上步骤以后,执行“cd ~/.ssh”切换到SSH目录,发现生成了新文件:

 

james@ubuntu:~$ cd ~/.ssh

james@ubuntu:~/.ssh$ ll

total 16

drwx------ 2 james james 4096 Sep  4 21:51 ./

drwxr-xr-x 20 james james 4096 Aug 30 13:14../

-rw------- 1 james james 1675 Sep  4 21:51id_rsa

-rw-r--r-- 1 james james  394 Sep  4 21:51 id_rsa.pub

james@ubuntu:~/.ssh$

 

3. 执行“james@ubuntu:~/.ssh$ scp id_rsa.pubjames@192.168.100.2:~/.ssh/authorized_keys”将服务器“~/.ssh”目录下的“id_rsa.pub”拷贝到客户端“~/.ssh”目录下的“authorized_keys”。

 

4. 执行“ssh james@192.168.100.2”登陆到客户端(192.168.0.2)的james帐号,此时配置还没有完成,仍然须要用户输入密码。登陆以后,同步骤1生成客户端的“id_rsa.pub”文件。

 

5. 执行“james@ubuntu:~/.ssh$ cat id_rsa.pub >> authorized_keys”,将“id_rsa.pub”文件添加到“authorized_keys”文末。完成这个步骤以后,服务器端公钥和客户端公钥都保存在客户端的“~/.ssh/ authorized_keys”文件中;而服务器的“~/.ssh/ authorized_keys”文件仅包含服务器本身的公钥。

 

6. 客户端执行“james@ubuntu:~/.ssh$ scp ~/.ssh/authorized_keysjames@192.168.100.1:~/.ssh/authorized_keys ,用客户端“~/.ssh”目录下的“authorized_keys”替换服务器端的“~/.ssh”目录下的“authorized_keys”。

 

7. 至此,服务器(192.168.100.1)和客户端(192.168.100.2)之间的无密码登陆就完成了。

 

8. 服务器端使用命令:“ssh james@192.168.100.2”可无须输入密码,直接登陆到客户端。

 

9. Ubuntu 14可能会报“Error:Agent admitted failure to sign”错误,而且仍然要求用户输入密码才能登陆。解决方法是:分别在登陆服务器和客户端的帐号,执行“james@ubuntu:~/.ssh$ ssh-add”命令,以下所示:

james@ubuntu:~/.ssh$ ssh-add

Identity added:/home/james/.ssh/id_rsa (/home/james/.ssh/id_rsa)

james@ubuntu:~/.ssh$

 

10. 若是以为每次输入IP地址比较麻烦,能够执行“james@ubuntu:~/.ssh$ sudo vi /etc/hosts”配置“/etc/hosts”文件,内容以下:

127.0.0.1   localhost

127.0.1.1   ubuntu

 

192.168.100.1 server

192.168.100.2 client

 

客户端的“/etc/hosts”文件应该和服务器的“/etc/hosts”内容一致。

 

11. 之后服务器登陆客户端可使用“ssh james@client”代替“ssh 192.168.100.2”;客户端使用“ssh james@server”代替“ssh 192.168.100.1”登陆服务器了。

相关文章
相关标签/搜索