ssh 免密码登陆

一、准备工作:
1、确认本机sshd的配置文件(需要root权限)

 #vim /etc/ssh/sshd_config


找到以下内容,并去掉注释符”#“

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

#关闭密码登陆
PasswordAuthentication no


2、如果修改了配置文件需要重启sshd服务 (需要root权限)

#systemctl restart sshd.service

配置SSH无密码登录需要3步:
    1.生成公钥和私钥
    2.导入公钥到认证文件,更改权限
    3.测试


1.生成公钥和私钥

$ssh-keygen -t rsa

   默认在 ~/.ssh目录生成两个文件:
    id_rsa      :私钥
    id_rsa.pub  :公钥


2.导入公钥到认证文件,更改权限
    2.1 导入本机

$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys



    2.2 导入要免密码登录的服务器
        首先将公钥复制到服务器

$scp ~/.ssh/id_rsa.pub xxx@host:/home/id_rsa.pub

        然后,将公钥导入到认证文件(这一步的操作在服务器上进行)

$cat /home/id_rsa.pub >> ~/.ssh/authorized_keys

  2.3 在服务器上更改权限

 $chmod 700 ~/.ssh
 $chmod 644 ~/.ssh/authorized_keys     #如果是Red Hat 5.6的话,最好改成600,否则认为是不安全的~


解决本地登陆用户与远程登陆用户不一致

好吧,这事很纠结,虽然不用输入密码了,但是还得 ssh username@hostname 来登陆,很不爽,你懂的。 其实解决也很简单(but是同事告诉我的,老脸一红),修改本地登陆用户的 ~/.ssh/config 文件,如果木有的话就自个儿建一个吧,内容如下:

Host hostname    
    user liluo

这样,本地和远程登陆用户名不一致也可以 ssh hostname 登陆了。


 

你可能感兴趣的:(ssh 免密码登陆)