SSH服务的搭建

SSH服务的搭建,第1张

管理服务

SSH基础服务,SSH是远程连接Linux,管理Linux的服务。

Secure Shell Protocol简写SSH 安全的shell协议

使用的默认的端口为22(一台机器的不同功能就用端口区分)

ssh参数:

-p 指定端口

格式:命令 -p 端口用户@IP相当于ssh IP

scp命令参数:

-P端口

-r递归

-p保持属性

-l 限制速度

推:

scp -P 22 -rp /data root@172.16.1.7:/tmp

scp -P -rp /data 172.16.1.7:/tmp

scp -P 22 -rp root@172.16.1.7:/data /tmp

scp -P -rp 172.16.1.7:/data /tmp

对比下scp和rsync

scp每一次都是全量考本,加密拷贝。

rsync第一次全量拷贝,远程shell也是加密拷贝

sftp命令:加密的ftp服务,默认缺点不能锁定家目录。

ftp:vsftp。

sftp服务也支持windows ftp客户端:

winscp,flashftp,xshell也支持

常规和服务器交互数据文件:

rz/sz 属于lrzsz

ssh服务配置:

s

使用用户名密码登录

不需要密码登录,使用密钥文件就可以连接服务器。

实践密钥认证:

项目实践:批量管理、批量分发内容项目

1、基于root用户做Linux之间的秘钥认证。

2、生成密钥对(去超市买把锁),不需要指定服务器。

3、在61上生成密钥对(方便)。

4、把锁放到7/8上

C6:

5、ssh-copy-id:原理

6、测试远程执行命令:

7、写个脚本

8、开发脚本实现批量管理服务器:

9、批量发文件:

复杂分发文件脚本:

SSH批量管理如何一键完成:

一键创建及分发秘钥:

1.购买一个服务器:腾讯云全球购 https://curl.qcloud.com/kvN3CHB1

2.安装基本的服务:

安装java服务:yum install java-1.8.0-openjdk* -y

telnet命令: yum install telnet  查看安装效果:rpm -qa telnet

修改root用户密码:passwd 

新增:useradd XXX用户  设置密码: passwd XXX

限制root用户远程登陆:

打开/etc/ssh/sshd_config文件,找到PermitRootLogin参数,将yes改为no,不同系统版本可能这个PermitRootLogin参数的位置不一样,不过操作是一样的,都是改为no。

vim /etc/ssh/sshd_config

修改完/etc/ssh/sshd_config记得要重启sshd服务,重启服务之后修改的配置才生效

systemctl restart sshd

3.安装squid

安装:yum install squid

修改配置文件,让squid可以公网访问,并修改默认端口,添加密码:vim /etc/squid/squid.conf

启动:systemctl restart squid 

查看日志:tail -f /var/log/squid/access.log

企业内部大部分服务器都只有内网,一般可以使用NAT方式正向代理访问公网资源。对于Linux来说一般通过ssh登录服务器,在没有公网IP的情况下可以修改ssh config配置文件,利用一台可以接入内网并具有公网IP的服务器作为代理或者称为Tunnel跳板机来管理,可以灵活定制访问规则并优化ssh参数让管理更加轻松。

2019年01月31日 - 初稿

阅读原文 - https://wsgzao.github.io/post/ssh-config/

扩展阅读

SSH CONFIG FILE - https://www.ssh.com/ssh/config/

ssh程序可以从三个途径获取配置参数:

上面三个途径,前面的途径传入的参数可以覆盖后面的途径传入的参数(与 linux 里的大部分应用类似)。因为/etc/ssh/ssh_config 会影响 ssh 全局的配置,因此如果想对多主机进行管理(不影响别人的情况下),可以考虑修改自己家目录下的~/.ssh/config 文件(~ 字符表示当前登录用户的家目录)。

首先看一个配置文件的 demo,假设8.8.8.8是你可以直接登录的Tunnel公网跳板机,10.65.32.0是需要管理的内网地址段,前提是8.8.8.8和内网服务器的防火墙策略均已配置正确,这里就不再赘述。

CheckHostIP no,禁用known_hosts检查

Directs ssh to additionally check the host IP address in the known_hosts file.

StrictHostKeyChecking no,跳过known_hosts写入

Specifies if ssh should never automatically add host keys to the ~/.ssh/known_hosts file, and refuses to connect to hosts whose host key has changed.

Host 字段

Host 字段配置了登录别名,这里需要注意的是,Host 是支持通配符的, * 代表 0~n 个非空白字符,? 代表一个非空白字符,! 表示例外通配

HostName 字段

指定远程主机名,可以直接使用 IP 地址。如果这个字段中包含 ‘%h’ ,则实际使用时会被命令行中的主机名替换

User 字段

指定登录用户名

IdentityFile 字段

指定密钥认证使用的私钥文件路径。默认为 ~/.ssh/id_rsa。这个字段可以指定多个密钥文件(以 , 分开),在连接的过程中会依次尝试这些密钥文件。和 HostName 字段一样,值也可以直接指定参数代替:

Port 字段

指定远程主机端口号,默认为 22 。

%h,远程主机名

%p,远程端口

SSH使用密钥登录并禁止口令登录实践 - https://wsgzao.github.io/post/ssh/

玩转 SSH 端口转发 - https://blog.fundebug.com/2017/04/24/ssh-port-forwarding/


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/384974.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存