ssh 无密码登陆远程服务器

ssh 无密码登陆远程服务器

1.在客户端创建公钥

[root@Server1 ~]# ssh-keygen -t rsa 

输入后,会提示创建.ssh/id_rsa、id_rsa.pub的文件,其中第一个为密钥,第二个为公钥。过程中会要求输入密码,为了ssh访问过程无须密码,可以直接回车 。

[root@Server1 ~]# ls -l .ssh
总用量 8
-rw-------. 1 root root 1675 12月 10 22:20 id_rsa
-rw-r--r--. 1 root root 394 12月 10 22:20 id_rsa.pub

特别要注意的是这2个文件的权限.

  • id_rsa 的权限是 -rw-------
  • id_rsa.pub 的权限是 -rw-r--r--

2. 将公钥复制到服务器的 ~/.ssh 目录下

复制客户端 .ssh/id_rsa.pub 文件中的内容,添加到服务器的 ~/.ssh/authorized_keys 文件中, 如果服务器端authorized_keys文件不存在,新建一个即可.

3. 修改服务sshd配置并重启sshd服务

修改服务器端的 /etc/ssh/sshd_config 文件, 打开 AuthorizedKeysFile

ssh 无密码登陆远程服务器_第1张图片

使用命令 /etc/init.d/sshd restart重启 sshd 服务.

4. 设置服务器文件和目录权限:

root:~/.ssh# ll
total 24K
drwx------  2 root root 4.0K Jan 13 10:42 ./
dr-xr-x--- 15 root root 4.0K Jan 16 00:37 ../
-rw-r--r--  1 root root  408 Jan 13 10:42 authorized_keys
-rw-------  1 root root 1.7K Aug 13  2015 id_rsa
-rw-r--r--  1 root root  394 Aug 13  2015 id_rsa.pub
-rw-r--r--  1 root root  395 Jul  1  2015 known_hosts

特别要注意的一点是 .ssh 目录的权限是 drwx------

5. 客户端验证使用SSH IP地址的方式无密码访问

ssh [email protected] 

如果设置有错误, 则还是会提示输入密码确认. 对于 Centos 可以查看log文件 /var/log/secure , 寻找原因.

你可能感兴趣的:(ssh 无密码登陆远程服务器)