0%

ssh 免密登录远程服务器

How to Create an SSH Key - KeyCDN Support

每次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
2
3
4
5
6
7
8
9
Host * 
Port 36000
ServerAliveInterval 120

Host yourservername #远程服务器的名称,随便取
HostName x.xxx.xxx.xxx #远程服务器的ip
Port 36000 #远程服务器的端口
User root #登录的用户名
IdentityFile ~/.ssh/id_rsa #与远程服务器公钥配对的私钥

配置好之后,就可以免密登录了而无需输入密码。推荐搭配vscode进行使用,最强远程开发工具。

1
ssh [-p port] username@remote-server-ip