ssh远程服务器

实验要求

1.修改ssh服务器端口号

2.拒绝root账户远程登录

3.允许特定账户进行ssh登录,其它账户无法登录

4.ssh-keygen 免密登录

5.xshell使用密钥登陆

思路总结

修改ssh服务端口号,打开配置文件修改21行端口;拒绝root登录去掉配置文件及其子目录下的PermitRootLogin yes;允许特定用户登录,修改配置文件;ssh-keygen免密登录服务端产生公钥和私钥,客户端把公钥上传到服务端即可;xshell免密登录,在服务端创建空的公钥文件,之后打开shell创建公钥,把公钥复制在服务端的公钥文件中,最后使用xshell登录

实验步骤

1.修改ssh服务器端口号

服务端

yum install openssh-server 安装ssh服务

vim /etc/ssh/sshd_config 编辑ssh文件

复制代码
其中关键信息说明如下
		21.#Port 22  # 默认监听22端口,可修改
		22.#AddressFamily any  # IPV4和IPV6协议家族用哪个,any表示二者均有
		23.#ListenAddress 0.0.0.0 # 指明监控的地址,0.0.0.0表示本机的所有地址(默认可修改)
		24.#ListenAddress :: # 指明监听的IPV6的所有地址格式

		26.#HostKey /etc/ssh/ssh_host_rsa_key     # rsa私钥认证,默认
		27.#HostKey /etc/ssh/ssh_host_ecdsa_key   # ecdsa私钥认证
		28.#HostKey /etc/ssh/ssh_host_ed25519_key # ed25519私钥认证


		34 #SyslogFacility AUTH  # ssh登录系统的时会记录信息并保存在/var/log/secure
		35.#LogLevel INFO   # 日志的等级

		39.#LoginGraceTime 2m   # 登录的宽限时间,默认2分钟没有输入密码,则自动断开连接
		40 PermitRootLogin yes # 允许管理员root登录 
		41.#StrictModes yes   # 是否让sshd去检查用户主目录或相关文件的权限数据
		42.#MaxAuthTries 6  # 最大认证尝试次数,最多可以尝试6次输入密码。
		                     之后需要等待某段时间后才能再次输入密码
		43.#MaxSessions 10   # 允许的最大会话数

		49.  AuthorizedKeysFile .ssh/authorized_keys # 选择基于密钥验证时,客户端生成一对公私钥之后,
		                                         会将公钥放到.ssh/authorizd_keys里面
		65 #PasswordAuthentication yes  # 登录ssh时是否进行密码验证
		66 #PermitEmptyPasswords no    # 登录ssh时是否允许密码为空

		......
		123.Subsystem sftp /usr/libexec/openssh/sftp-server #支持 SFTP ,如果注释掉,则不支持sftp连接
		AllowUsers user1 user2 #登录白名单(默认没有这个配置,需要自己手动添加),
		                      允许远程登录的用户。如果名单中没有的用户,则提示拒绝登录

修改端口号

root@server \~# vim /etc/ssh/sshd_config 定位第21行,去掉# 后修改端口号

21 Port 2222

服务端操作,重启服务

root@server \~# systemctl restart sshd # 注意:ssh的服务名位sshd
注意:如果出现端口占用不能释放,使用如下命令测试一下:

sudo semanage port -a -t ssh_port_t -p tcp 2222

执行此命令后,SELinux将允许ssh在tcp协议的备用端口上运行,从而确保了安全性和连接的稳定性。

root@server \~# yum install net-tools # 安装网络工具才可使用netstat命令

root@server \~# netstat -ntlp # 查看端口号是否已修改

客户端

客户端操作,ssh登录服务端

root@node1 \~# ssh root@192.168.48.130 登录服务端的ip地址

尝试登录被拒绝,22端口已关闭

以2222的端口号登录

复制代码
root@node1 ~]# ssh  -p  2222  root@192.168.48.130  # 指明以2222端口登录服务端

2.拒绝root账户远程登录

第一步修改服务器配置

root@server \~# vim /etc/ssh/sshd_config

PermitRootLogin no # yes修改为no

同时修改: /etc/ssh/sshd_config.d/01-permitrootlogin.conf 中, PermitRootLogin no

第二步:服务端重启服务

root@server \~# systemctl restart sshd 重启ssh服务

第三步:客户端,测试

无法登陆

3.允许特定账户进行ssh登录,其它账户无法登录

服务端添加新账户

root@server \~# useradd test 创建新用户

root@server \~# passwd test 修改密码

服务端修改主配置文件

root@server \~# vim /etc/ssh/sshd_config

AllowUsers test # 第一行添加

重启服务

root@server \~# systemctl restart sshd 重启ssh服务

客户端测试

root@node1 \~# ssh test@192.168.48.128 登录test用户

root@node1 \~# ssh root@192.168.48.130 # 测试其它账户可否登录

root@192.168.48.130's password:

Permission denied, please try again

4.ssh-keygen 免密登录

服务端

ssh-keygen是用于生成、管理、转换密钥的工具

root@server \~# ssh-keygen -t rsa

• 分析

◇ -t:指定密钥类型

◇ rsa:使用rsa公钥加密算法,可以产生公钥和私钥

◇ 执行后会在对应账户目录中产生一个隐藏目录.ssh,其中有2个文件

▪ id_rsa:私钥文件

▪ id_rsa.pub:公钥文件

客户端

定位客户端,制作公私钥对

root@node1 \~# ssh-keygen -t rsa # 一路回车

将公钥上传到服务器端

root@node1 \~# ssh-copy-id root@192.168.48.130 # 输入服务端的账户及IP地址

注意:客户端将公钥上传到服务器端后,服务器端的/root/.ssh/authorized_keys文件会存储客户端的公钥数据

最后客户端免密测试

root@node1 \~# ssh root@192.168.48.130 客户端ssh免密登录

5.xshell使用密钥登陆

服务端

注意:先在服务器端检查/root/.ssh/authorized_keys是否存在,它是存储公钥的文件,若不存在需要新建

服务器端操作

root@server \~# cd /root

root@server \~# ls -a

root@server \~# mkdir .ssh

root@server \~# cd .ssh

root@server .ssh# vim authorized_keys 创建authorized_keys文件

有时需要注意.ssh目录的权限◇

客户端

打开xshell,新建密钥

设置密钥文件名加密密码(可不设)

产生公钥,并==另存为文件==

将windows中保存的公钥文件以==记事本==的方式打开,复制内容,

拷贝到Linux服务器端的/root/.ssh/authorized_keys文件中后保存退出

重启服务端服务

root@server .ssh# systemctl restart sshd 重启服务端ssh服务

打开xshell

点击==用户身份验证==,选择==Public Key== 方式验证登录,点击连接

成功

相关推荐
zahuilg1011 小时前
Mac原生终端SSH一键快捷连接|无需装软件、极简安装、快速上手
macos·ssh·github·终端
佛山个人技术开发1 天前
GitCode SSH连接配置教程
运维·ssh·gitcode
修炼室1 天前
外网环境原生直连校内服务器:基于内网穿透 + SSH 密钥认证的完整实践指南
服务器·ssh·php
vortex51 天前
SSH “administratively prohibited” 报错解决
运维·ssh
William.csj2 天前
服务器——终端ssh可以连接进服务器,vscode连接不进去服务器的解决办法
服务器·vscode·ssh
鱼与宇3 天前
XShell8、Xftp8 离线 内网 如何跳过注册弹窗
ssh
Menahem3 天前
解决 SSH 报错:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
运维·ssh·github
蔡不菜和他的uU们3 天前
vLLM实践之个人AI基建——云端vLLM+SSH Tunnel+本地Cherry Studio
人工智能·ssh·vllm
嘿嘻哈呀4 天前
Mac 如何通过 SSH 控制同一 Wi-Fi 下的 Windows 电脑
windows·ssh·mac·局域网·openssh
魔极客4 天前
利用文心一言解决“1panel下载ollama镜像时间太长引起的不能远程连接ssh故障”
运维·ssh·文心一言