- 生成密钥
使用需要生成密钥的用户登录后键入。
ssh-keygen -t rsa
直接回车会在~/.ssh目录(用户所在家目录下的.ssh目录,如果没有请自行创建.ssh目录)生成id_rsa, id_rsa.pub文件 第一个是私有密钥 第二个是公共密钥。如果输入内容会在当前目录创建你输入内容为名称的私钥公钥。这里直接回车。
然后输入密钥密码,再次输入密码(也可以不要密码直接回车)。生成密钥完成。
将用户.ssh目录内的两个密钥下载到本地。(我用的是win客户端ftp方式下载)
- 配置ssh使用密钥(一定先下载下来再去修改配置)
将.ssh中的id_rsa.pub复制并改名字为authorized_keys
cd .ssh
cp id_rsa.pub authorized_keys
修改authorized_keys权限为700(必须修改为700,不能为其他)
chmod 700 authorized_keys
修改sshd_config文件
vim /etc/ssh/sshd_config
参考如下修改,如果前面有# 去除
StrictModes no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys #ssh文件位置
PasswordAuthentication yes #使用密码 no为不使用密码
AuthenticationMethods publickey,password #如果密码和密钥都使用在末尾加上此行代码
重启ssh服务
systemctl restart sshd.service
RSAAuthentication yes # 开启密钥登入的认证方式
PubkeyAuthentication yes # 开启密钥登入的认证方式
PermitRootLogin yes #此处请留意 root 用户能否通过 SSH 登录,默认为yes:
PasswordAuthentication yes #当我们完成全部设置并以密钥方式登录成功后,可以禁用密码登录。这里我们先不禁用,先允许密码登陆
禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no
是否让 sshd 去检查用户家目录或相关档案的权限数据,
这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no
是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no
列子:
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords yes
PasswordAuthentication no