一、open ssh的功能
1.sshd服务的用途
作用:可以实现通过网络在远程主机中开启安全shell的操作
2.openssh-server 安装包
3./etc/ssh/sshd_conf
4.默认端口为22
5.客户端命令ssh
二、ssh
1.基本用法
ssh -l 远程主机用户 <ip | hostname >
ssh -l root 172.25.254.112 通过ssh命令在112主机中以root的身份开启远程shell
实验一:
实验环境:服务端nodea 客户端nodeb
nodea hostnamectl set-hostname hostname112.westos.org
nodeb hostnamectl set-hostname hostname212.westos.org
客户端nodeb在远程登陆服务端nodea时,客户端的/root/.ssh/known_hosts文件中会产生一串密钥,而服务端nodea中的/etc/ssh/ssh_hosts_ecdsa_key.pub中也会产生一串相同的密钥
cd /etc/ssh
ls /etc/ssh
rm -fr ssh_host_*
systemctl restart sshd
在nodeb中操作:
ssh -l root 172.25.254.112 再次登陆时系统会提示错误,根据系统提示文件的那行出现问题就将那个文件的第几行删除
ssh -l root 172.25.254.112 再次登陆就成功了
ssh 常用的参数
-l 指定用户登入 ssh -l root 172.25.254.112
-X 开启图形 ssh -Xl root 172.25.254.112
-i 指定私钥
-f 后台运行 ssh -Xfl root 172.25.254.112 gedit
-o 首次登入不需要输入yes ssh -l root 172.25.254.112 -o "StrictHostKeyChecking=no"
-t 指定连接跳板 ssh -l root 172.25.254.73 -t ssh -l root 172.25.254.112
3.ssh key 认证
认证类型
(1)对称加密
加密和解密是同一串字符
缺点:容易泄漏,可暴力破解,容易遗忘
(2)非对称加密
加密用公钥,解密用私钥
优点:你会被盗用,攻击者无法通过密钥方式登陆服务器
生成非对称加密密钥
方法一:
在服务端nodea中操作
ssh-keygen
ls /root/.ssh
ssh-copy-id -i /root/.ssh/id_isa.pub root@172.25.254.112
cat /root/.ssh/id_isa.pub
cat /root/.ssh/authorized_keys 这两个文件内容一样
scp /root/.ssh/id_isa root@172.25.254.212:/root/.ssh
在客户端nodeb中操作:
ls /root/.ssh/ 里面可以看到从nodea中复制过来的密钥id_isa
ssh -l root 172.25.254.112 直接可连接不用输入密码
方法二:
在nodea 中操作
ssh-keygen -f /root/.ssh/is_isa -P ""
ssh-copy-id -i /root/.ssh/id_isa.pub root@172.25.254.112
ls /root/.ssh 生成和id_isa一样的模板
scp /root/.ssh/is_isa root@172.25.254.212:/root/.ssh
在nodeb中操作
ls /root/.ssh
里面可以看到从nodea中复制过来的密钥id_isa
ssh -l root 172.25.254.112 直接可连接不用输入密码
4.sshd 安全优化参数详解
在nodea中操作
ls /etc/ssh
vim /etc/ssh/ssh_config
PermitRootLogin yes|no 将其改成no
systemctl restart sshd
在nodeb中操作:
ssh -l root 172.25.254.112 会显示permission denied,please try again.
在nodea中: vim /etc/ssh/sshd_config
编辑内容:
PasswdAuthentication yes|no 将其改为no
systemctl restart sshd
在nodea中 ssh -l root 172.25.254.112
本次可直接登入,不需要修改密码
在nodea中 useradd lee
echo lee | passwd --stdin lee
vim /etc/ssh/sshd_config
AllowUsers lee
systemctl restart sshd
在nodeb中 useradd lee
su - lee
ssh -l lee 172.25.254.112 输入密码后可直接登入
su - westos
ssh -l westos 172.25.254.112 会显示permission denied,please try again.
在nodea中
vim /etc/ssh/sshd_config
编辑内容:
DenyUsers lee
systemctl restart sshd
在nodeb中操作
su - lee
ssh -l lee 172.25.254.112 会显示permission denied,please try again.
su - westos
ssh -l westos 172.25.254.112 输入密码可直接登陆
在nodea中操作
vim /etc/ssh/sshd_config
编辑内容:
procc 22 将其注释的解释
systemctl resatrt sshd
network -antlupe | grep sshd 会显示当前接口为22 tcp 0 0 0.0.0.0.:22 0.0.0.0:*
setenforce 0
systemctl disable --now firewalld
vim /etc/ssh/sshd_config
编辑内容:
prot 2222
systemctl restart sshd
在nodeb 中操作
ssh -l root 172.25.254.112 会显示ssh: connect to host 172.25.254.112 prot 22 : no route to host
ssh -l root 172.25.254.112 -P 2222 可直接连接