使用 SSH Key 访问服务器
前言
在刚接触到服务器的时候,一般都会采取密码登录,但每次登录服务器的时候都需要输入密码,体验很不好,而且相较于 SSH Key 不太安全,而使用 SSH Key 连接服务器可以省去每次输入密码的过程,包括使用 scp
进行文件的上传下载的时候也不需要手动输入密码了。
SSH Key
配置
生成的 SSH Key 默认存储在 ~/.ssh
目录下,可以使用 ls ~/.ssh
查看之前是否已经生成过 SSH Key,如果提示 No such file or directory
可以使用如下指令用于生成 SSH Key:
ssh-keygen
接着会询问保存文件的位置以及是否要设定 passphrase,如果设定了 passsphrase 那么每次使用该 SSH Key 的时候都需要输入这个 passsphrase,可以根据自己对安全性的需求设定,空白表示不设定。
如果采用默认的设置,那么会在 ~/.ssh
路径下生成两个 Key,一个私钥 id_rsa
,另一个公钥 id_rsa.pub
,私钥需要好好保管。下面介绍两种将公钥设置到服务器上的方法:
使用 ssh-copy-id
如果操作系统中有 ssh-copy-id
,那么可以直接使用以下命令设置:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@server
- username:连接服务器的用户名
- server:服务器的域名或者 ip 地址
- ~/.ssh/id_rsa.pub:默认的公钥地址,如果修改过 SSH Key 存储地址,请填写对应地址
复制公钥到服务器的 authorized_keys 中
ssh username@server 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
上述命令用于在远程服务器上创建 ~/.ssh
文件夹并用本机的公钥创建服务器上的 ~/.ssh/authorized_keys
文件,接着设置权限:
ssh username@server 'chmod 700 -R ~/.ssh && chmod 600 ~/.ssh/authorized_keys'
验证
经过上述的配置之后,可以再次进行 SSH 连接验证配置是否生效:
ssh username@server
如果不需要输入密码就能够连接服务器,说明设置生效。
更进一步
我们还可以对已配置的服务器进行命名,方便连接,比如生产服的服务器可以命名为 prod,测试服的服务器可以命名为 stage 等,只需要修改 ~/.ssh/config
文件即可:
Host prod
HostName XXX.XXX.XXX.XXX
User root
只需要修改 Host
字段为自己想要的内容即可,这时候就可以使用 ssh prod
来连接该台服务器了。
- 感谢您的赞赏