SSH-Key 登录远程服务器配置方法

1、ssh 的安全认证,包含以下两种:

1)基于口令的安全认证

2)基于密钥的安全认证

2、基于口令的安全认证

       知道用户名和密码即可登录,该连接是加密的,但客户端既不能确认目标主机是否是“伪造的”,也不能保证口令安全。

远程主机的 /etc/ssh/sshd_config 关键配置修改为“yes”:

重新加载 sshd 使改动生效:

/etc/init.d/sshd reload

3、基于密钥的安全认证

        客户端向服务器发出请求。服务器收到请求之后,先在用户的主目录下找到该用户的公钥,然后对比用户发送过来的公钥。如果一致,服务器用公钥加密“质询”并发送给客户端。客户端收到“质询”后用私钥解密,再发还给服务器。认证结束。

       生成 ssh-key,选加密算法(rsa、dsa),给秘钥命名(可选):

       ssh-keygen -t rsa -C "test"

        注:passphrase 是证书口令,以加强安全性,避免证书被恶意复制。

        执行命令后,在 ~.ssh 下生成 id_rsa/id_rsa.pub 两个文件,分别是私钥/公钥。

  •  公钥上传保存到远程服务器 ~/.ssh/authorized_keys 中
  • 私钥由客户端本地留存

       要保证 .ssh 和 authorized_keys 都只有用户有写权限。否则验证无效。

        chmod -R 700 ~/.ssh/
        chmod 600 ~/.ssh/authorized_keys

        ssh 的关键配置

         

$ vim /etc/ssh/sshd_config

# 禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no

# 是否让 sshd 去检查用户家目录或相关档案的权限数据,这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。例如使用者的 ~/.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no

# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

# 有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no

    配置客户端的 /etc/ssh/ssh_config

# 其实默认 id_rsa 已经加入私钥路径了
IdentityFile ~/.ssh/id_rsa
# 如果有其他的私钥,再加入其他私钥的路径
IdentityFile ~/.ssh/my_id_rsa

 

 

你可能感兴趣的:(linux,知识,linux,运维,服务器)