SSH 免密码登陆Linux服务器

172 阅读1分钟

在日常开发过程中,主要通过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