作为一名开发或者是运维人员一定对linux操作系统不陌生,因为linux是最优秀的操作系统之一,最重要的是开源的,任何人都可以下载安装使用,且可以随意修改内核等特点非常受欢迎,下面主要对centos 操作系统作为实例来说明ssh的的各种使用方法,及排错,centos 是开源linux系统使用最广泛的服务器操作系统,个人一般都使用Ubuntu linux 操作系统,如果感兴趣可以访问一下网址获取操作系统镜像文件。
centos 系统下载:https://mirrors.aliyun.com/centos/8.2.2004/isos/x86_64/
Ubuntu系统下载:[http://www.ubuntu.com/]
在linux中SSH是非常常用的工具,通过SSH客户端我们可以连接到运行了SSH服务器的远程服务器上,通过ssh控制服务器,ssh 协议可以定义传输数据加密,压缩提高传输速率。默认端口号22,一般都需要修改端口号的默认端口,以提高服务器的安全性。
命令格式: ssh -p port user@ remote_ip
在演示之前一定要有linux操作系统,否则无法测试
首先要是到linux服务器的IP地址,我直接登录服务器查看IP地址,之后再用xshell,或 Secure CRT 等工具进行远程登录,centos 操作系统默认已经启动sshd 服务器,只需要使用命令加IP地址登录即可。
获取IP地址命令:root@localhost ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.195.128 netmask 255.255.255.0 broadcast 192.168.195.255 inet6 fe80::e349:2144:d6f2:f094 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:56:27:00 txqueuelen 1000 (Ethernet) RX packets 95 bytes 10403 (10.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 39 bytes 5210 (5.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
记录IP地址:192.168.195.128
注意:xshell 输入连接命令时不需要输入 -p 22 参数,输入后会报错无法登录成功使用一下命令即可
ssh root@192.168.195.128
在windows 系统上使用xshell 工具进行远程登录连接:
回车输入密码确认即可登录:
xshell 免密登录: 不使用密码登录,使用密钥登录,需要修改配置文件 sshd_config :
PubkeyAuthentication yes 开启公钥认证
AuthorizedKeysFile .ssh/authorized_keys 认证需要读取的配置文件,里面存放的是生成的公钥
第一步:打开xshell --->工具----->新建用户秘钥向导: 选择RSA秘钥类型,否则后期无法登录,暂时不明原因,点击下一步
生成公钥:公钥主要用于放到远端服务器上的秘钥文件
下一步:设置秘钥信息
图中:秘钥名称:可以修改成自己想要的,默认即可
密码:123 此密码:是自己定义一般不要和服务器的登录密码重复
确认: 123
下一步:公钥注册
公钥格式:一般选择 SSH2-OpenSSH
点击保存文件:将公钥信息保存到一个位置,我保存到了桌面,点击完成
导出秘钥信息:点击导出,选择导出位置为桌面,导出时需要输入上面输入的密码123,然后关闭
第二步:将生成的公钥导入到服务器的配置文件即可
先使用ssh 密码登录到服务器:ssh root@192.168.195.128
查看系统中是否有此目录:[root@localhost ~]# ls -d .ssh .ssh
没有.ssh 隐藏目录,需要手动创建,一定要在当前用户的家目录下:mkdir /root/.ssh;touch /root/.ssh/authorized_keys
将生成的公钥复制到:/root/.ssh/authorized_keys
从桌面上找到:id_dsa_1024.pub 用文本编辑器打开,全部复制
vim /root/.ssh/authorized_keys
ssh-dss AAAAB3NzaC1kc3MAAACBALXjUMw9g32obE8jhO8356iFfqXvUivzL4/sBQ2Y0q6lNtz8pQgijB8L/rTWmrhfKRb7Y/VSL4PVXzwvaQ5cQBEhOt/te9gFq5trjl1n0U1BknhhfNyq9b8RIHt6IZmFDydQsxHt+HZwAhDV1Dyxd6wZICKIRsw/r3QdRDeeH2pfAAAAFQCdR0fiSoGBrZB06F6+ximGdBeeJQAAAIBj4hEAMramV85Nmf2zLDaO/Q5pO93e5App6Y59CXqZFc9r/SY/21dhAWG1i2f1ApI8vF0KD9kMBiFHDX5NDrPJ7FQjggd1nNWo1qD3NwerWYM0eW8U3tzhfBNUsFilcBdEHH6v+IoBcmQ3Mmhfu0k+a1baKARdCUkAc4AXbylJDwAAAIBxoHpuR61+q+t34w0/++zs9GTZkMq26JOI9b3kfh/uEGo+Br9lKKr9wM+3CvC6MwPnrzXOZJtP+c1PMw6Cfs62BF3tKOqh6y+gBJWhVeJpglUrMq5D1bEeo2Jzz3moackm5EylQpX5/QM0lkz/MtBTVApxpVUNKnOr5aUWDZL0GA==
:wq
重启sshd服务:systemctl restart sshd
打开xshell ---->新建
选择秘钥配置:点击确认登录
错误1:如果遇到xshell 登录直接显示这个界面一般都是服务器的配置文件sshd_config 设置了不允许密码登录,只允许密钥登录
解决方法:修改配置允许密码登录
vim /etc/ssh/sshd_config
找到以下内容改为yes
PasswordAuthentication yes
:wq
重启服务器:systemctl restart sshd
错误2:输入密码正确却无法登录服务器,是因为sshd 服务配置,不允许root 用户登录
vim /etc/ssh/sshd_config
找到一下配置改为yes
PermitRootLogin yes
错误3:如果秘钥无法登录查看配置,是否有以下两项并且开启
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
错误4:普通用户在配置秘钥登录时,需要注意:要使用root 权限设置:chmod 700 /home/linux/.ssh
chmod 600 /home/linux/.ssh/authorized_keys, 普通用户必须设置权限,否则无法登录,root用户在centos 操作系统下不需要设置权限,普通用户需要设置。