SSH 登录

2016/01/01 OS

SSH 免密码登录

检查当前系统是否已生成 ssh 公钥私钥:

➜  ~ ls -l ~/.ssh
-rw-------  1 albertchen  staff  1675  6  6 22:22 id_rsa
-rw-r--r--  1 albertchen  staff   407  6  6 22:22 id_rsa.pub
-rw-r--r--  1 albertchen  staff  6465 11 13 09:58 known_hosts
  1. authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
  2. id_rsa : 生成的私钥文件
  3. id_rsa.pub : 生成的公钥文件
  4. know_hosts : 已知的主机公钥清单

如果没生成则使用如下命令生成:

ssh-keygen -t rsa

然后复制 id_rsa.pub 内容到远程需要登录的服务器上的 ~/.ssh/authorized_keys 也可以直接是让如下命令:

ssh-copy-id -i ~/.ssh/id_rsa.pub romte_ip
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ban-ss

远程服务器上注意:

  1. ssh目录的权限必须是 700
  2. .ssh/authorized_keys 文件权限必须是600

多主机相互信任

多主机相互信任是相对于用户,注意切换使用到的用户做如下操作:

Jenkins 使用 command 操作 linux 时会使用 jenkins 账号

假设有主机A、B, 要使 A 信任 B 直接 SSH 登陆B 则:

  1. 主机A:用ssh-keygen生成密钥对, 公钥id_rsa.pub和私钥id_rsa
ssh-keygen -t rsa
  1. 主机B:用ssh-keygen生成密钥,并在.ssh(注意是被登陆用户的.ssh目录)目录中新建authorized_keys文件用于存放其他主机的公钥,此文件属主可读写,群组及其他用户可读,即权限必须小于或等于644。
touch authorized_keys && chmod 644 authorized_keys

然后将A主机(用于远程登陆的用户的.ssh目录下的)公钥id_rsa.pub内容拷贝追加到B主机的对应用户的家目录下的.ssh文件夹中的authorized_keys文件中。 完成以上两步配置后,主机A可以直接SSH登录主机B。

  1. 相反,只要在A主机用户的.ssh目录中新建authorized_keys文件,并将B主机上相应的公钥id_rsa.pub的内容拷贝追加至authorized_keys,并设定文件权限小于或等于644,这样B主机可以直接SSH登录A主机。

Search

    Table of Contents