ssh 免密码登录

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

 #vim /etc/ssh/sshd_config


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

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

#关闭密码登录
PasswordAuthentication no


二、若是修改了配置文件须要重启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 导入本机
ssh

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



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

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

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

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

  2.3 在服务器上更改权限
code

 $chmod 700 ~/.ssh
 $chmod 644 ~/.ssh/authorized_keys     #若是是Red Hat 5.6的话,最好改为600,不然认为是不安全的~


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

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

Host hostname    
    user liluo

这样,本地和远程登录用户名不一致也能够 ssh hostname 登录了。

相关文章
相关标签/搜索