Linux ssh远程登陆方式:密码与公钥

说明

Linux下有一个远程登陆shell的方法:ssh。只要开启了这个service(sshd),就可以从别的客户机远程登陆(无论是从Linux还是windows)。

登陆方法有两种:

  • 密码登陆

  • 公钥认证,双方各持公钥,客户机持私钥

密码登陆

采用密码登陆只需要服务器开启了sshd服务。可以通过以下方法验证及开启:

  • 在CentOS 7下输入:systemctl status sshd.service验证;status改成start开启

  • 其它低级系统输入:service sshd status 验证。

Linux系统登陆

服务器满足条件后,如果客户端是Linux系统,则输入:

ssh -l root 192.168.11.214 -p 22

解释:

  • -l root 代表用root用户登陆

  • 后面跟ip地址,-p代表端口号,sshd服务的端口号是22

windows系统登陆

采用SecureCRT就可以了。

公钥登陆

我是采用RSA加密的公钥/私钥。这对秘钥由客户端生成,然后将公钥发给服务端,之后就可以用公钥登陆了。

服务端设置

先 vim /etc/ssh/sshd_config ,打开这两个配置:

RSAAuthentication yes
PubkeyAuthentication yes

如果想禁止密码登陆,设置:

PasswordAuthentication no

将客户端发来的公钥追加到~/.ssh/authorized_keys下面(公钥生成见下文):

cat key.pub >> ~/.ssh/authorized_keys
echo >> ~/.ssh/authorized_keys  #输入一个回车,以便下次追加从新的一行开始

然后重启sshd服务:

systemctl restart sshd.service
# service sshd start

Linux系统登陆

先生成秘钥:

ssh-keygen -t rsa

不需要输入密码,连续三次回车生成成功。然后把公钥发给服务端。

输入登陆命令:

ssh -l root 192.168.11.214 -p 22

windows系统登陆

使用SecureCRT生成秘钥:工具->创建公钥,一些关键步骤是:

  • 密钥类型选择RSA

  • 密钥格式选择OpenSSH

  • 可以自定义密钥名

其余保持默认即可。

然后把公钥发给服务端。

之后登陆选项中把公钥登陆勾上就可以了:

原文地址:https://www.cnblogs.com/demon90s/p/6154875.html