说明
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
-
可以自定义密钥名
其余保持默认即可。
然后把公钥发给服务端。
之后登陆选项中把公钥登陆勾上就可以了: