ssh远程登录协议:默认端口号22
以下实验7-2是服务端,7-1是客户端
服务器的相关信息:
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端相关信息:
客户端的主程序:/usr/bin/ssh
客户端配置文件:/etc/ssh/ssh_config
一、正常登录
7-2作为服务端,让7-1远程连接,服务端ssh是开启的
关闭服务端防火墙,核心防护:
使用7-1连接:默认端口号是22
ssh 192.168.114.20
连接上了!可以在7-1客户端输入exit退出连接!
二、修改服务器配置文件,指定端口号
方法一:打开服务端7-2配置文件:vim /etc/ssh/sshd_config修改端口号一行,端口号为50000,把注释取消
并重启服务systemctl restart sshd
测试7-1客户端连接,加上端口号:ssh 192.168.114.20 -p 50000
方法二: 加选项-l,指定登录名称:ssh -l [远程登录主机用户名] [远程服务器主机名或者IP地址] -p 端口号。ssh -l root 192.168.114.20 -p 50000
三、常用配置项:
3.1 LoginGraceTime 2m 用来设定如果用户登录失败,在切断连接前服务器需要等待的时间,单位为秒,如果在输入密码时,一直不输入,系统等待多久就自动断开。这里服务端设置成60,并取消注释。默认为2分钟
端口号修改回来22,重启服务systemctl restart sshd
客户端连接服务器,20秒内输入密码,否则断开:
测试20秒内不输入密码:超时断开!
3.2 PermitRootLogin yes 默认 ubuntu不允许root远程ssh登录
禁止root用户登录。虽然禁止了,root用户远程连接,但是可以连接普通用户,从普通用户su登录root用户:
服务端:不允许连接root用户。指定端口号9527。修改完别忘了重启服务systemctl restart sshd
在客户机7-1上测试:ssh 192.168.114.20 -p 9527。发现,被拒绝!
可以连接服务端的普通用户,用户名+端口号的方式:ssh lxd2@192.168.114.20 -p 9527
3.3 StrictModes yes 检查.ssh/文件的所有者,权限等
3.4 MaxAuthTries 6 意思是用来设置最大失败尝试登陆次数为6
修改服务端:端口还修改回来22,修改这一处,修改为2。重启服务systemctl restart sshd
客户端连接,故意输入错误密码:
3.5 MaxSessions 10 同一个连接最大会话
修改服务端:保存,重启服务systemctl restart shd
最多连3台,第四台客户端测试:连接失败
四、免密登录
服务端,还原原来的配置
无需密码:直接登录
只在客户端
客户端:第一步,生成密钥;第二步传密钥给对方(在客户端执行免密登录)
ssh-keygen三个回车,默认RSA算法
ssh-copy-id -i id_rsa.pub 192.168.114.20自己的密钥文件,对方的地址。
客户端操作:生成密钥:ssh-keygen。默认在自己的家目录下,~/.ssh/id_rsa这是私钥,id_rsa.pub这是公钥
私钥 公钥
将公钥文件导入对方用户,注意路径ssh-copy-id -i id_rsa.pub 192.168.114.20
测试连接,此时不在需要密码,实现了免密登录
-end-