SSH远程登陆

SSH原理

ssh是一种网络协议,用于计算机之间的加密登陆。

windows:PuTTY

linux:OpenSSH

用法

  • 口令登陆:

第一次登陆对方主机,系统会出现如下提示,表示无法确认host主机的真实性,只知道公钥指纹,是否继续连接

$ ssh user@host
The authenticity of host 'host (192.168.1.21)' can't be established.
RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
Are you sure you want to continue connecting (yes/no)?

输入yes后,系统会提示,host主机已经得到认可

Warning: Permanently added 'host,12.18.429.21' (RSA) to the list of known hosts.

然后输入密码就可以登录了。

当远程主机的公钥被接受以后,会保存在~/.ssh.known_hosts之中。下次在连接这台主机,系统会跳过警告部分,直接提示输入密码。

  • 公钥登陆:

原理:用户将自己的公钥存储到远程主机上,登陆的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发送回来。远程主机用储存的公钥解密,解密成功则直接登陆。

$ ssh-keygen

运行结束后会在~/.ssh/目录下生成:id_rsa.pub和id_rsa。前者是公钥,后者是私钥。

ssh-copy-id user@root

使用上面的命令将公钥拷贝到远程主机,登陆的时候就不需要密码。

注意使用公钥登陆的时候,在/etc/ssh/sshd_config配置文件中,需要开启以下权限

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

然后执行service sshd restart重启服务。

SSH配置文件

ssh客户端配置文件:/etc/ssh/ssh_config

ssh服务端配置文件:/etc/ssh/sshd_config

具体使用可以使用man 5 ssh_config或ssh 5 sshd_config。

SSH连接不上服务器的原因:

1.SSH服务没有开启

$ ps -ef|grep ssh
$ /etc/init.d/sshd restart 

2.防火墙没有关闭

$ /etc/init.d/iptables stop
$ getenforce
$ setenforce 0

3.配置文件中不允许用户远程登陆

$ vi /etc/ssh/sshd_config
PermitRootLogin yes
$ service sshd restart

附录

  1. ps
  2. selinux



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值