简介

在 Mac 上配置 SSH 密钥登录远程的 Linux

相关配置

创建本地的 SSH 密钥

ssh-keygen -t rsa -C 'example@example.com'
-t 指定密钥类型,默认即 rsa
-C 设置注释文字,比如你的邮箱

在配置过程中,可以根据提示设置私钥密码,我这里就不设置,默认为空,回车即可。

生成的密钥默认在家目录下的.ssh目录下

上传公钥到远程 Linux 服务器

使用 scp 复制公钥到远程服务器

scp -P <端口号> ~/.ssh/id_rsa.pub <用户名>@<ip地址>:/home/id_rsa.pub

配置远程 Linux 的私钥

登录远程 Linux 服务器,把公钥追加到服务器 ssh 认证文件中

cat /home/id_rsa.pub >> ~/.ssh/authorized_keys

如果在 家目录 没有 .ssh 目录或 authorized_keys 文件,可以创建一下,并授予 authorized_keys 文件 600 权限

然后在执行

cat /home/id_rsa.pub >> ~/.ssh/authorized_keys

创建配置文件快速登录

每次登录都需要输入用户名和地址,这样也是太麻烦,可以添加配置文件,使用别名来登录

% vi ~/.ssh/config
Host            alias            #自定义别名
HostName        0.0.0.0          #替换为你的ssh服务器ip或domain
Port            22               #ssh服务器端口,默认为22
User            root             #ssh服务器用户名
IdentityFile    ~/.ssh/id_rsa    #第一个步骤生成的公钥文件对应的私钥文件

此时就可以使用 ssh进行登录

ssh alias

禁止 Linux 使用账号密码登录

% cd /etc/ssh/ & vi sshd_config

# sshd_config:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
#AuthorizedKeysCommand none
#AuthorizedKeysCommandRunAs nobody
#默认PasswordAuthentication 为yes,即允许密码登录,改为no后,禁止密码登录
PasswordAuthentication no
# end

% systemctl restart sshd.service