SSH免密码一键登录

#linux #server #SSH

最近刚开始使用 hugo,会频繁登录服务器去做一些配置。每次登录服务器都要敲一堆命令和账号密码啥的。一劳永逸的方法是改成 ssh 密钥登录,它比密码登录更安全、更快捷。根据以下 2 个步骤完成配置后,登录服务器一条命令就搞定。

ssh webserver

使用 SSH 公钥身份验证登录服务器 Use SSH Public Key Authentication on macOS

  1. SSH 密钥存储在  ~/.ssh/  目录中,先去看看是否已有密钥对。使用 Ed25519 生成的默认名称为 id_ed25519id_ed25519.pub
  2. 如有则跳过第二步。没有则需要手动生成一个全新的密钥对。
ssh-keygen -t ed25519 -C "user@domain.tld"
//-C 是一个可选注释,可帮助您区分 SSH 密钥。可以用邮箱、网址、常用用户名来识别

//生成密钥对后,您应看到类似于以下内容的输出:
Your identification has been saved in /Users/username/.ssh/id_ed25519.
Your public key has been saved in /Users/username/.ssh/id_ed25519.pub.
The key fingerprint is: SHA256:AVF3XG5XtwxWmoECKC9xExnStF5JzpXYDfkieOejYJE user@domain.tld
  1. 要开始使用新生成的 SSH 密钥对,首先需要将公钥上传到远程系统。
ssh-copy-id [user]@[ip-address]

//提示您输入远程用户的密码,输入密码后,公钥将复制到服务器 authorized_keys 的文件中。您现在可以验证您是否能够使用密钥登录服务器。
  1. 可选项。如果您使用的是私人计算机,则可以使用 ssh-add 实用程序来存储您的密码,以便将来在同一终端会话中的 SSH 连接中不需要它。
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

//若要确认已添加密钥,请运行该 ssh-add -l 命令并验证密钥是否显示在列表中。

配置 SSH 别名一键登录 Create an SSH Alias to access your remote machines

//打开ssh配置文件
$ vim ~/.ssh/config

//新增
Host <起个名字>
HostName <你的服务器ip地址>
User <用户名>
Port [可选项,端口号]

//演示实例
Host webserver
HostName 100.8.8.8
User root

完成后,就可以这样登录服务器了

ssh webserver

Refer