Contents

Password-less SSH Login

SSH免密登录

摘要 实现ssh免密登录。

关键词 ssh

1 生成公钥

# 生成公钥
ssh-keygen -t rsa -C "your_email_address"

2 免密登录 Git

C:\Users\steven\.ssh\git_id_rsa.pub 的内容复制到gitee, github的SSH keys

测试连通性

ssh -T git@github.com

后续使用git clone git@gitee.com:steven/my-project.git 即可。

有时候会需要 C:\Users\steven\.ssh\config 正确配置Host信息

Host gitee.com
  HostName gitee.com
  IdentityFile C:\Users\steven\.ssh\git_id_rsa
  User git

如果远程仓库一开始用的是HTTPS,可以改为ssh

# 查看远程仓库地址
git remote -v
# 更换远程仓库地址
git remote set-url origin git@gitee.com:steven/my-project.git

3. 免密登录服务器

3.1 ssh终端工具

使用ssh终端工具,比如xshell, windterm时,第一次填写密码后,会记住密码,后续无需手动输入。

配置跳板机、代理可参考

3.2 vscode remote-ssh

使用vscode remote-ssh时,可以将本机生成的公钥id_rsa.pub的内容放到目标服务器的~/.ssh/authorized_keys中。

需要本机 C:\Users\steven\.ssh\config 正确配置Host信息

Host dev-xxx.xxx.xxx.xxx
    HostName xxx.xxx.xxx.xxx
    User steven

Host production-xxx.xxx.xxx.xxx
    HostName xxx.xxx.xxx.xxx
    User steven
    ProxyJump jump_machine

Host jump_machine
    HostName xxx.xxx.xxx.xxx
    User steven

如果没有实现免密扽登录,可在目标服务器尝试执行如下命令

chmod 700 ./.ssh
chmod 600 ./.ssh/authorized_keys

原因是SSH不希望用户目录和~/.ssh目录对组有写权限