ssh_config:针对客户端
sshd_config:针对服务端
访问形式 | 端口号 |
---|---|
SSH:密文访问默认端口 | TCP:22,一般广域网 |
Telnet:明文形式的访问 | TCP 23,一般局域网 |
远程桌面 | 3389,图形化界面 |
名称 | 作用 |
---|---|
mstsc(cmd命令提示符输入mstsc,根据提示操作) | 微软中远程桌面的形式,只可一个用户一个终端登录,可复制文件,微软对微软 |
VNC | 跨终端远程软件 |
teanviewer | 远程访问软件 |
端口号、协议版本、监听IP地址
[root@localhost ~]# vim /etc/ssh/sshd_config
...
Port 22 端口号可以修改
#AddressFamily any
#ListenAddress 0.0.0.0 监听地址可修改
#ListenAddress ::
Protocol 2 版本2
禁止root用户,空密码用户
限制登录验证时间,重试次数
AllowUsers(白名单,仅允许,只有这些可以登录)
DenyUsers(黑名单,仅拒绝,只有这些不行)
AllowUsers不可与DenyUsers同时使用
[root@localhost ~]# vim /etc/ssh/sshd_config
LoginGraceTime 2m 会话时间
PermitRootLogin no 禁用root用户
StrictModes yes
MaxAuthTries 6 最大盐城重试次数,默认是3
PermitEmptyPasswords no 禁用空密码用户
...
AllowUsers lisi [email protected] 仅允许zhangsan用户在终端192.168.100.88登录,允许lisi用户可以在不同终端登陆
登录验证对象
服务器中的本地用户账号
登录验证方式
密码验证:核对用户名,密码是否匹配
密钥对验证:核对客户的私钥,服务端公钥是否匹配
密钥对:包含公钥,私钥
公钥:服务器使用
私钥:客户保留
非对称秘钥:RSA
对称秘钥:3DES,AES
[root@localhost ~]# vim /etc/ssh/sshd_config
PasswordAuthentication yes 是否使用密码
PermitEmptyPasswords no 禁止空密码
PasswordAuthentication yes 是否需要密码验证
PubkeyAuthentication yes 开启公钥验证
AuthorizedKeysFile .ssh/authorized_keys 指定公钥库位置
命令基本格式
ssh user@host
例如
[root@55~]# ssh [email protected] 以root用户登录对方主机
The authenticity of host '20.0.0.47 (20.0.0.47)' can't be established.
ECDSA key fingerprint is SHA256:Eer6tAEbaZylH0v8F1nr+ShthK1rjZl3eRi7UTw4RX4.
ECDSA key fingerprint is MD5:de:d7:cf:23:bd:8d:a1:02:ff:23:a2:4b:94:fe:e7:02.
Are you sure you want to continue connecting (yes/no)? yes 输入yes
Warning: Permanently added '20.0.0.47' (ECDSA) to the list of known hosts.
[email protected]'s password: 输入对方密码
Last login: Thu Nov 21 17:37:59 2019 from 20.0.0.2
[root@66~]#
还有会开启 /etc/pam.d/su服务模块的情况,需要注意权限
如果sshd服务器使用了非默认的端口号(如123),则在登陆时必须通过“-p”选项指定端口号。
例如,执行以下操作江枫问主机20.0.0.47的123端口,以对方的zhangsan用户验证登录。
[root@55~]# ssh -p 123 zhangsan@20.0.0.47
zhangsan@20.0.0.47's password: /输入密码
命令基本格式
格式一:scp user@host:file 1 file 2
格式二:scp file 1 user@host:file 2
[root@55 ~]# scp /etc/hosts [email protected]:/etc/hosts 将本机文件/etc/hosts以root权限复制到20.0.0.47中
[email protected]'s password:
hosts
或者
[root@55 ~]# scp [email protected]:/etc/hosts /etc/hosts1
[email protected]'s password:
hosts
命令基本格式
sftp user@host
get:下载
put:上传
例如
[root@55 ~]# sftp [email protected]
[email protected]'s password:
Connected to 20.0.0.47.
sftp> ls
ssh-keygen命令
可用的加密算法:RSA、ECDSA或DSA
[zhangsan@localhost ~]$ ssh-keygen -t ecdsa 生成公共/私有ecdsa密钥对
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/zhangsan/.ssh/id_ ecdsa): 输入保存秘钥的文件
Created directory '/home/zhangsan/ .ssh'.
Enter passphrase (empty for no passphrase): 输入密码
Enter same passphrase again: (设置密钥短语)
Your identification has been saved in /home/zhangsan/.ssh/id_ ecdsa. (私钥文件位置)
Your public key has been saved in /home/zhangsan/.ssh/id_ _ecdsa.pub. (公钥文件位置)
任何方式均可(共享,FTP,Email,SCP…)
例如
[root@55 ~]# scp ~/.ssh/id_ecdsa.pub [email protected]:/tmp
将公钥文本添加至目标用户的公钥库
默认公钥库位置:~/.ssh/authorized_keys
[root@localhost ~]# mkdir /home/lisil.ssh/
[root@localhost ~]# cat /tmp/id_ ecdsa.pub >> /home/lisi/.ssh/authorized_ keys
[root@localhost ~]# tail -1 /home/lisi/.ssh/authorized_ keys
ecdsa-sha2-nistp256
AAAAE2VjZHNhL XNoYTItbmlzdHAyNTYAAAAlbmlzdHAyNTYAAABBBL JSnBhscY
BfnnHxSYAJEBD4sNkTLMF7itcFGM33RdeXU89QNQkMnCrCJHzAIZURrzpXG6M
p62mz9gRXUnARk8s=zhangsan@localhost
验证用户:服务端的用户lisi
验证密码:客户端的用户zhangsan的私钥短语
[zhangsan@localhost ~]$ ssh [email protected]
[isi@localhost ~]$ whoami
lisi
ssh-copy-id -i 公钥文件 user@host
验证密码后,会将公钥自动添加到目标主机user宿主目录下的.ssh/quthorized_keys文件结尾
[root@55 ~]#ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
方式一
通过tcpd主程序对其他服务程序进行包装
方式二
由凄然服务程序调用libwrap.so.*链接库
ldd `which sshd` 查看模块
服务列表:客户机地址列表
多个服务以逗号分隔,ALL表示所有服务
多个地址以逗号分隔,ALL表示所有服务
允许使用通配符*和?
网段地址,如192.168.1 或者 192.168.1.0/255.255.255.0
区域地址,如.benet.com
仅允许从以下地址访问sshd服务
主机192.168.100.100
网段192.168.200.0/24
禁止其他所有地址访问受保护的服务
[root@55 ~]# vim /etc/hosts.allow
sshd:192.168.100.100,192.168.200.*
[root@55 ~]# vim /etc/hosts.deny
sshd:ALL
优先读取allow,然后再读取deny
如果做黑名单,name白名单就不用写
许访问
仅允许从以下地址访问sshd服务
主机192.168.100.100
网段192.168.200.0/24
禁止其他所有地址访问受保护的服务
[root@55 ~]# vim /etc/hosts.allow
sshd:192.168.100.100,192.168.200.*
[root@55 ~]# vim /etc/hosts.deny
sshd:ALL
优先读取allow,然后再读取deny
如果做黑名单,name白名单就不用写