SSH远程登录协议

目录

一、SSH服务

1.SSH基础

2.SSH的优点

3.SSH的配置信息

4.SSH原理

二、.SSH登录

1.登录方法

2.模拟防火墙

3.服务端配置

4.修改默认端口和禁止root用户登录

5.白名单和黑名单

1.白名单

2.黑名单

六、SSH服务的实践

七、使用秘钥对及免交互验证登录

1.原理:1.用户/密码

2.172.16.114.10主机配置

3.172.16.114.20主机配置

4.172.16.114.30主机配置

总结:本章主要介绍了SSH的相关知识以及SSH相关实验配置


一、SSH服务

1.SSH基础

1.SSH是一种安全通道协议,实现字符界面的远程登录,压缩等功能SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

2.SSH服务端主要包括两个服务功能 SSH远程链接和SFTP服务(文件传输功能)

2.SSH的优点

1.数据传输是加密的,可以防止信息泄露

2.数据传输是压缩的,可以提高传输速度

3.SSHD 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。 相比较之前用 Telnet 方式来传输文件要安全很多,因为 Telnet 使用明文传输,SSH 是加密传输

3.SSH的配置信息

1.服务名称:SSHD

2.服务配置程序:/usr/sbin/sshd

3.服务端配置文件:/etc/ssh/sshd_config

4.客户端配置文件:/etc/ssh/ssh_config

4.SSH原理

客户端首次发起连接,服务端会生成一个随机会话id,会将服务端的公钥以及会话id发给客户端

客户端收到会话id以及服务端的公钥,会用客户端自己的公钥和会话id运算产生一个结果,然后再用服务端公钥加密,最后将这个加密结果传给服务端

服务端收到加密结果后,会用自己的私钥解密加密的结果,因为已知会话id就可以得出客户端的公钥

二、.SSH登录

1.登录方法

1.方法一:

ssh [远程主机用户名]@[远程服务器主机名或者IP地址] -p [端口号]

远程登录默认使用22端口   root(登录对方的用户)@ IP 地址,首次登录会询问,并要求输入密码,输入密码后登录成功

2.方法二:

ssh -l [远程主机用户名] [远程服务器主机名或IP地址] -p [端口号]

3.SSH选项

-l 指定登录名称

-p 指定登录端口

-t 跳板连接

2.模拟防火墙

iptables -A INPUT -s 192.168.91.102 -j REJECT    模拟防火墙

ssh -t 172.16.114.20 ssh 172.16.114.30                  方便跳板连接

3.服务端配置

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

port 22     可以修改端口号

4.修改默认端口和禁止root用户登录

1.修改默认端口

vim  /etc/ssh/sshd_config            修改默认端口

Port 9527                                     17 行修改自己默认的端口

2.禁止root用户登录

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

PermitRootLogin no                开启38 行 并改为 no,默认注释并写的yes(虽然阻止了root 但是普通用户可以使用su命令切换)

ssh lc1@172.16.114.20           使用lc1用户登录连接主机

su root                                     使用su命令可以切换

配置文件里修改38行为no

可以修改pam认证模块来禁止使用su命令

vim /etc/pam.d/su           修改pam配置文件

6 auth            required        pam_wheel.so use_uid         开启第6行,默认注释

5.白名单和黑名单

1.白名单

1.主机172.16.114.20配置

vim /etc/ssh/sshd_config   配置文件

AllowUsers   lc@172.16.114.10    lc1                 允许所有有的主机访问我的lc1用户
只允许172.16.114.10访问我的lc

useradd lc 添加新用户lc

passwd lc  设置密码

systemctl restart sshd  重启服务

2.主机172.16.114.10测试

3.主机172.16.114.30测试

2.黑名单

vim /etc/ssh/sshd_config 配置文件

DenyUsers lc  拒绝所有人连接lc用户

ssh lc@172.16.114.20 连接lc用户

连接失败

六、SSH服务的实践

  1. 建议使用非默认端口 22

  2. 禁止使用protocol version 1

  3. 限制可登录用户 白名单

  4. 设定空闲会话超时时长

  5. 利用防火墙设置ssh访问策略

  6. 仅监听特定的IP地址 公网 内网

  7. 基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs

  8. 使用基于密钥的认证

  9. 禁止使用空密码

  10. 禁止root用户直接登录

  11. 限制ssh的访问频度和并发在线数

  12. 经常分析日志 分离

七、使用秘钥对及免交互验证登录

1.原理:1.用户/密码

2.基于秘钥

用户/密码:1.生成公钥和私钥

2.将公钥导给对面

2.172.16.114.10主机配置

ssh-keygen -t ecdsa 生成密钥文件

三个回车

cd .ssh 切换目录

ssh-copy-id -i id_ecdsa.pub 172.16.114.20  将公钥文件导入对方用户

yes 确定

输入密码

ssh root@172.16.114.20 测试是否连接20主机

exit  退出

ssh-copy-id -i id_ecdsa.pub 172.16.114.30   将公钥文件导入对方用户

yes 确定

输入密码

ssh root@172.16.114.30 测试是否连接30主机

3.172.16.114.20主机配置

ssh-keygen -t ecdsa 生成密钥文件

三个回车

cd .ssh 切换目录

ssh-copy-id -i id_ecdsa.pub 172.16.114.10  将公钥文件导入对方用户

yes 确定

输入密码

ssh root@172.16.114.10 测试是否连接10主机

exit 退出

ssh-copy-id -i id_ecdsa.pub 172.16.114.30   将公钥文件导入对方用户

yes 确定

输入密码

ssh root@172.16.114.30 测试是否连接30主机

4.172.16.114.30主机配置

ssh-keygen -t ecdsa 生成密钥文件

三个回车

cd .ssh 切换目录

ssh-copy-id -i id_ecdsa.pub 172.16.114.10  将公钥文件导入对方用户

yes 确定

输入密码

ssh root@172.16.114.10 测试是否连接10主机

exit 退出

ssh-copy-id -i id_ecdsa.pub 172.16.114.20   将公钥文件导入对方用户

yes 确定

输入密码

ssh root@172.16.114.20 测试是否连接20主机

这样秘钥对及免交互验证登录就做好了

总结:本章主要介绍了SSH的相关知识以及SSH相关实验配置

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Visual Studio Code (VSCode) 是一个强大的代码编辑器,支持多种语言和平台,并且可以通过扩展功能来增强其功能,包括使用 SSH 远程连接到服务器进行开发。配置 VSCode 的 SSH 让你可以直接在本地编辑并在远程服务器上运行代码。以下是基本的步骤: 1. **安装**: - 打开 VSCode,确保已经安装了 `Remote Development` 插件。如果没有,可以在扩展市场搜索并安装 "Remote - SSH"。 2. **设置SSH密钥**: - 如果你还没有 SSH 公钥对,可以在终端或命令提示符中生成一对(通常使用 `ssh-keygen` 命令)。 - 将公钥(默认为 `.ssh/id_rsa.pub`)的内容添加到远程服务器的 `.ssh/authorized_keys` 文件中,或者使用 `ssh-copy-id` 命令自动添加。 3. **配置SSH配置文件**: - 在你的本地电脑上,打开 VSCode,按 `Ctrl+Shift+P` 或者点击左下角的活动栏搜索,输入 "Remote-SSH: Edit Configuration File",选择相应的配置文件(通常是 `~/.ssh/config` 或者 `c:\Users\yourname\.ssh\config`)。 4. **添加配置项**: - 在配置文件中,添加一个新的 SSH 会话,例如: ``` Host your-remote-server HostName your.remote.server.address User your-username Port 22 IdentityFile ~/.ssh/id_rsa # 你的私钥路径 # 如果有密码,可以设置PasswordAuthentication yes # 如果有代理,可以设置ProxyCommand ``` 5. **连接到服务器**: - 保存配置后,你可以通过 Remote-Explorer 视图(`Ctrl+Shift+K, Ctrl+O`)或终端(`Terminal` > `New Terminal`,然后输入 `code your-remote-server`)来连接到远程服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值