Linux中的远程登录服务
实验环境
-
client:客户端
hostname:westos_client.westos.com
ip:192.168.0.100 -
server:服务端
hostname:westos_server.westos.com
ip:192.168.0.200
ifconfig:查看ip地址
nm-connection-editor:设定ip地址
hostnamectl set-hostname 主机名:设定主机名称
Openssh服务的基本信息
-
作用:在企业中都是一对多个服务器操作,所以需要通过网络登录远程主机,需要通过网络在远程主机开启shell来进行操作,远程主机必须提供这样的开启shell的方式,以上的需求由openssh服务来提供,要求远程主机安装了openssh并开启了这个程序,那么我们就可以通过网络来连接这台主机了。-
-
命令:
-
shh -l 用户 远程主机ip -p 端口号(默认是22可以不加) -X() #连接到远程主机
-
shh username@ipaddress -p 端口号 -X
##注:shhd服务的配置文件在/etc/ssh/sshd_config
-
Openssh服务的key认证(免密登录远程主机)
- 用户密码认证(对称加密)
- 密码容易泄露
- 容易忘记密码
- 秘钥认证(非对称加密)
- 安全
- 不会忘记密码
- 建立key认证的方式
-
建立key文件(一般在服务机上建)
ssh-keygen -
上传公钥(加密远程主机)
ssh-copy-id -i 公钥所在的绝对路径 username@ipaddress -
下放私钥给需要远程登录的主机
-
测试
-
##注:也可以在原主机上建立key文件之后,用shh-copy-id命令给远程主机上锁,达到key认证的方式
Openssh服务的安全配置
##注:在配置过程中保证selinux处于关闭状态,保证系统防火墙关闭
-
getenforce:查看系统的selinux的状态{Disabled(关闭)/Enforcing(开启)}
##可以在/etc/selinux/config中修改,修改之后需要重启,才能生效。 -
systemctl status firewalld : 查看系统防火墙的状态
-
systemctl disable --now firewalld :开机不启动防火墙,并且立刻关闭防火墙
修改端口
-
在/etc/ssh/sshd_config 配置文件中修改
-
修改完成后,需要重新启动sshd服务
-
用ss -antlup |grep shhd 来查看端口号是否修改完成
ListenAddress修改
目的:指定sshd监听的地址
-
在/etc/ssh/sshd_config配置文件中更改
-
systemctl reload sshd重新加载使更改生效
-
ss -antlup|grep sshd查看更改后的配置
密码认证的禁用
- /etc/ssh/sshd_config配置文件中更改
##注:当远程主机禁用密码认证后,是不可以通过密码进入远程主机,但是如果有主机key秘钥,还是可以登录
sshd服务的用户控制
-
禁止超级用户进入的方式 配置/etc/ssh/sshd_config
-
黑名单 #通过给/etc/ssh/sshd_config加入 Denyusers username,禁止指定用户使用sshd服务
-
白名单 #指定用户可以使用sshd服务
远程执行命令
- ssh username@ipaddress command #可以远程使用命令,不用打开远程主机的shell,再执行命令
- ssh username@ipaddress -o StrictHostKeyChecking=no #在第一次连接时不用检测HOSTKEY(屏蔽yes、no的输入)
##注:对于已知到的ip地址信息存放在/root/.ssh/known_hosts
sshd登录信息修改
- /etc/motd文件中有什么字符,在ssh登录时就可以看到什么字符