工具类LinuxSRE磐石Base

Linux ssh免密登录

2019-05-26  本文已影响6人  Jerry_1116

1 配置hosts文件

命令:vi /etc/hosts
在文件尾部添加

192.168.1.106 linux1
192.168.1.107 linux2
192.168.1.108 linux3
192.168.1.109 linux4

2 安装ssh

2.1 什么是ssh

  1. 传统的管理员对服务器的管理
  1. SSH的目标
    在不安全的网络上提供安全的网络服务。

2.2 安装ssh

  1. CentOS
# 检查openssh-server、openssh-clients是否已经安装
rpm -qa | grep openssh-server
rpm -qa | grep openssh-clients
# 安装
yum  install -y openssh-server openssh-clients
  1. Ubuntu
# 检查openssh-server、openssh-clients是否已经安装
dpkg -l | grep openssh-server
dpkg -l | openssh-clients
# 安装
apt install -y openssh-server openssh-clients
- 启动ssh
```shell
service sshd start 或 /etc/init.d/sshd start
chkconfig --level 2345 sshd on

3 ssh免密登录

通过man ssh-keygen命令查看ssh-keygen的使用手册。

  1. 生成秘钥
    在本地主机或者跳板机上生成密钥和公钥:
ssh-keygen -t rsa
ssh-keygen生成密钥过程

ssh-keygen -t rsa生成密钥之后,会在当前用户的根目录生成一个 .ssh的文件夹。

ssh-keygen -t rsa生成的.ssh文件夹

进入.ssh会生成以下3个文件:

  1. 将公钥传输到远程主机上
    将公钥传输到远程主机上,有两种方式:ssh-copy-id安装和scp直接传输。
  1. ssh免密登录

4 常见问题

4.1 登录依然需要密码,用户名不对

直接使用ssh {ip/hosts},会显示当前系统的用户名@目标主机的名称,例如,当前用户为user,使用ssh linux1,登录之后显示为user@linux1,与linux1实际的用户名称不相符,从而还需要输入密码,不能实现免密登录。假设linux1的用户名为root,此时,无论你当前的用户名是什么,通过ssh root@linux1即可免密登录linux1主机。
但是这样,依然很不方便,需要输入很多的命令来登陆linux1主机。
假设你的用户名为user,已经设置好了密钥登录主机linux1(linux1的用户名为root)。那么你可以在shell的配置文件(比如.bashrc)里定义一个命令别名alias:alias linux1='ssh root@linux1'。以后每次你启动shell终端后,输入linux1,回车,直接就ssh登陆到主机linux1上。

4.2 远程主机已经配置完但一直不生效

配置远程主机linux1用户root的公钥登录时,配置完authorized_keys居然一直不生效。可能的原因之一是:
远程主机~/.ssh及其下面文件的权限问题导致的,因为目录的权限已经超过了sshd的要求权限。如果希望ssh公钥生效需满足至少下面两个条件:

  1. .ssh目录的权限必须是700
  2. .ssh/authorized_keys文件权限必须是600
r=4
w=2
x=1 

4.3 Agent admitted failure to sign using the key.

主机A登录远程主机linux1时,可能出现问题:
自动登陆会失效:“Agent admitted failure to sign using the key.”

Agent admitted failure to sign using the key错误
在主机A使用 ssh-add 指令将私钥 加进来 (根据个人的密匙命名不同更改 id_rsa):
ssh-add ~/.ssh/id_rsa

4.4 Could not open a connection to your authentication agent

如果报Could not open a connection to your authentication agent.
则执行命令:
ssh-agent bash --login -i

Could not open a connection to your authentication agent错误

参考

  1. linux 安装ssh以及ssh用法与免密登录
  2. Linux ssh密钥自动登录 专题
  3. Debugging SSH public key authentication problems
上一篇下一篇

猜你喜欢

热点阅读