🧵

设置密钥登录

💡
Notion Tip: Use this page to describe your approach to interviewing product candidates.
 

生成密钥

ssh-keygen -f ~/.ssh/your_key_name
密钥存放在 ~/.ssh 目录下
  • your_key_name:密钥对的私钥,通常放在客户端。
  • your_key_name.pub:密钥对中的公钥,通常放在服务端。
  • 将生成的公钥安装到当前操作系统
cd ~/.ssh/
cat your_key_name.pub >> authorized_keys
 
重启 ssh 服务
service sshd restart
 

本地使用密钥登录

ssh 命令登录

💡
如果没有使用默认的密钥名称(id_rsa),则在连接主机时需要加上-i 参数,指定对应密钥的名称。
ssh -p port -i ~/.ssh/your_key user@<ip address>
 

配置ssh config (简化登录命令)

上面的命令虽然可以实现免密登录,但是命令太长了,就算是复制粘贴也有可能会出错。
那有没有什么好的办法,解决这个问题呢?
当然是有的啦。
$HOME/.ssh 目录下,创建一个名为config的文件。
vim $HOME/.ssh/conifg
加入以下配置:
Host alias
    User user
    HostName ip
    Port port
    IdentityFile ~/.ssh/your_key
    ServerAliveInterval 360
参数说明:
  • Host:可以理解成别名,配置完成之后,最后就通过 ssh alias 进行登录。
  • User:远程主机的用户名称
  • HostName:远程主机的地址
  • Port:端口号
  • IdentityFile:私钥文件的路径
  • ServerAliveInterval:保持客户端与服务端会话在短时间内不会断开。
 

禁用密码登录

vim /etc/ssh/sshd_config

# 将yes 改为 no
PasswordAuthentication yes
然后重启 sshd 服务。
service sshd restart