Linux 使用 SSH 密钥对登录
生成密钥对
shell
ssh-keygen -t rsa -b 4096 -C "aday.fun@outlook.com"- 保存路径:直接按 Enter 键,使用默认路径。
~/.ssh/id_rsa(私钥)~/.ssh/id_rsa.pub(公钥)
- 密码短语 (Passphrase): CI 中用的时候,建议不要设置,否则有些工具可能无法配置密码短语导致连接失败。
将公钥复制到用户的 ~/.ssh/authorized_keys 文件中
生成密钥后,需要将公钥(.pub 文件)的内容添加到远程服务器上你所用用户的 ~/.ssh/authorized_keys 文件中。
shell
# 可以直接使用 ssh-copy-id 命令。如果端口不是 22 的话则需要对应修改。
ssh-copy-id -p 22 user@host
# 示例
ssh-copy-id -p 22 root@127.0.0.1
# 然后输入 yes, 再确认一下用户的密码即可。
# 或者
cat ~/.ssh/id_rsa.pub | ssh user@host 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh'注意:user@host 需要替换为<实际使用的用户名>@<主机地址或域名>。
复制私钥,登录
shell
cat ~/.ssh/id_rsa