每次ssh登录远程服务器的时候都要输入一次密码真的很麻烦,而且也浪费了时间(特别是密码还记不住的时候),好在ssh提供了通过ssh公钥和私钥配对的方式进行免密登录。
生成ssh钥匙对
1 | ssh-keygen -t rsa |
其中rsa是密钥的名称,可以随便取。一路按下enter进行确认,在~/.ssh目录下将多出两个文件,分别是id_rsa私钥文件和id_rsa.pub公钥文件。
需要注意的是私钥的权限不能过于开放,不能是777这种权限,可以用ls -al检查下它的权限,假如权限不符合预期可以改成600的权限。
1 | chmod 600 ~/.ssh/id_rsa |
上传公钥到远程服务器
1 | ssh-copy-id [-p port] username@remote-server-ip |
-p port为可选参数,默认为22;当发现上传不了的时候可以检查下端口号是不是22
配置本地的SSH配置文件
修改(没有则创建)~/.ssh/config文件
1 | Host * |
配置好之后,就可以免密登录了而无需输入密码。推荐搭配vscode进行使用,最强远程开发工具。
1 | ssh [-p port] username@remote-server-ip |