在日常开发过程中,主要通过vscode-romote远程连接到服务器进行调试。每次重新连接服务器,都需要重新输入密码,十分繁琐。所以我在自己的服务器和公司服务器下都配置了ssh-key进行免密登陆。 配置过程如下.
本地生成ssh-key
ssh-keygen -t rsa -C "myname@email.com"
执行ssh-keygen之后会在,用户目录下的.ssh文件下,生成一个id_rsa文件和id_rsa.pub文件。
id_rsa文件是私钥,要保存好,放在本地。
id_rsa.pub文件是公钥,可以用于发送到其他服务器。
本地配置config文件
.ssh/config 可以配置服务器的alias别名,登陆账户。
Host 服务器别名
HostName 服务器IP
User 登陆用户
Port 22 # 一般ssh默认端口为22 若是服务器修改端口,则这个配置要跟着改一下。
本地上传id_rsa.pub至传到服务器
在/home/user/.ssh目录下创先新文件authorized_keys
vim ~/.ssh/authorized_keys
并将自己的id_rsa.pub文件拷贝至authorized_keys文件内.
注意 /home 下每一个用户目录下都会有一个.ssh文件,请将id_rsa.pub复制至自己的.ssh/authorized_keys
注意 若是之前使用sudo su切换过root权限,则~/.ssh 会指向/root/.ssh,请使用绝对地址或者切换会个人用户。
检查服务器ssh配置
sudo vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysCommand none
AuthorizedKeysCommandUser nobody
以上几行把注释打开
修改文件权限
需要把.ssh 和authorized_key赋不同的权限
chmod 700 ./.ssh
chmod 600 ~/.ssh/authorized_key
sshd服务重启
sudo service sshd restart
连接服务器
ssh alias
ssh user@IP