LINUX下密钥认证免密 SSH 登录服务器

windows下使用xshell通过密钥认证方式免密码登录,配置方式参考WINDOWS 下 XSHELL 密钥登录 LINUX 服务器
本文是linux服务器之间通过密钥认证方式实现免密码登录。

实现目标

linux服务器2台,分别为 11.0.1.166(B)/11.0.1.167(C),要求 C 可以免密码直接使用 ssh username@IP 方式登录到其他2台服务器。

配置过程

在C服务器生成密钥对

ssh-keygen
生成密钥对

公钥复制至服务器B

将公钥复制至服务器B的 /root/.ssh/authorized_keys

复制方式1

使用ssh-copy-id方法复制,直接将公钥内容添加至authorized_keys文件
ssh-copy-id -i /root/.ssh/id_rsa.pub root@11.0.1.166
ssh-copy-id

复制方式2

scp复制公钥文件至服务器B并重命名为authorized_keys
scp /root/.ssh/id_rsa.pub root@11.0.1.166://root/.ssh/authorized_keys

说明

  1. .ssh等不存在的目录可自己创建。
  2. 确认.ssh文件夹权限为700,若不是,请chmod 700 /home/username/.ssh修改。
  3. 确认authorized_keys文件权限为600,若不是,请chmod 600 /home/username/.ssh/authorized_keys修改。
  4. 确认iptables及selinux状态,建议均关闭。

    测试连接

    ssh root@11.0.1.166
    测试ssh

    错误排查

    使用ssh密钥认证方式访问失败,可以通过查看连接过程或日志的方式排查。
  5. ssh -v root@11.0.1.166
    该方式会打印出连接的详细过程。
  6. cat /var/log/secure
    在centos 6 中查看该日志文件可以看到连接的错误信息。

    多个公钥处理方式

    有时候会出现同一台服务器同一个用户同时保存多个公钥的情况,此时公钥文件可以都保存在authorized_keys,但是需要添加换行符,格式如下
    多个公钥格式
    使用 cat id_rsa.pub > authorized_keys 或者 ssh-copy-id 方式均为直接追加至末尾,不可用。

    参考文章

  7. OpenSSH 密钥管理之理解RSA/DSA认证
  8. ssh-keygen 中文手册
  9. linux配置ssh公钥认证

Recommended Posts