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.1 如果在你本机电脑主目录内 不存在 隐藏文件夹 .ssh 的情况下输入命令: ssh-keygen -t rsa 不需要输入任何内容,连续三下回车确认。

1.2 进入 .ssh 文件夹 , 输入 ls -l 可以看到 id_rsa 和 id_rsa.pub 两个文件

1.3 创建config文件,输入:touch config

1.4 配置公钥免登陆 , 先通过密码的方式登录到你的服务器主机上。然后将你本机文件 ~.ssh/id_rsa.pub 里面的内容复制 并粘贴到 目标服务器主机的 ~.ssh/authorized_keys 文件内 , 如果没有 authorized_keys 可以使用 touch authorized_keys 创建一个。至此准备阶段完毕~~

2.1 配置文件参数

Host : 可以看作是一个你要识别的名称,对识别的名称,进行配置对应的的主机名和ssh文件

HostName : 要登录主机的IP地址、或者域名

User : 登录名

port : 端口

IdentityFile : 指明上面User对应的identityFile路径 也就是 私钥的路径

ProxyCommand : 代理命令(不常用) , 通俗解释: 就是当你连接上目标服务器后,首先执行的命令

** 2.2 用例参考 **

# aliyun 独行浪子

Host rizhifuwuqi # 设置名称为 duxinglangzi

HostName 39.104.110.110 配置目标主机IP 也可以是域名

User root

port 22

IdentityFile ~/.ssh/id_rsa 私钥的路径

ProxyCommand tail -f /backend/logs/info.log 表示登录目标主机后,执行此命令查看日志

在终端(terminal) 输入 :ssh rizhifuwuqi

本文最初发表于 我的个人站点

更详细的解释可以参考 SSH百度百科

简单来理解,就是我拥有一台服务器,我现在想要登录上去做一些事情,那就得使用ssh登录到远程的服务器上,才能在上面进行操作。

一开始在远程服务器上面,需要查看一下他的sshd服务启动了没有,如果没有启动,任何客户端主机是连接不上来的,一般如果是自己在云厂商处购买了主机,主机启动的时候就会把sshd服务启动起来。但有可能自己在测试环境搭建机器的时候,是没有默认启动的,这时候就需要在测试机器的终端看一下,命令如下

如果没有启动的话,那就启动一下,命令如下

这里我在测试环境机器的ip是 192.168.0.187, 我在自己的电脑上想要登录这台机器,我要做的就是使用ssh命令去登录192.168.0.187这台主机

我需要告诉192.168.0.187这台主机我以谁的身份去登录, 192.168.0.187会询问密码,命令如下

敲入正确的密码之后,我们就已经成功登录了主机了

这里看到让我输入一个文件名字来保存密匙,我这里示例就输入一个"foxchao"

回车以后,询问是否要输入一个密码来保护这个密匙,为了方便起见,我就不输入了,不然每次使用这个密匙文件还要输一遍密码,直接一路回车就ok,如下所示

到了这里,可以看到我们已经创建好了密匙对

现在我们新建了自己的密匙对之后,把foxchao.pub这个文件放到目标的机器上,加入目标机器的 authorized_keys 中就可以了,以后登录的时候就可以免去输入密码的步骤。

那我们先用scp放上去 ,关于scp命令,这里不过多介绍,就是传文件的一个命令,使用也比较简单,具体想了解可以看这里 Linux scp命令

这里表示我要把foxchao.pub这个文件拷贝到192.168.0.187这台机器root用户的用户目录下

回车之后会询问密码,输入密码确认之后,文件就传上去了,如下

这时候我们先用密码登上去看看传上去没有

可以看到foxchao.pub这个文件已经传上来了

目标主机上如果没有.ssh文件夹,就自己创建一个,创建好之后,再创建一个authorized_keys文件。如果有的话就不用了。

把刚才的foxchao.pub这个文件内容写进authorized_keys

看一下,已经有内容了

这里需要注意

authorized_keys 文件对权限有哟求,必须是600(-rw——-)或者644

.ssh目录 必须是700(drwx——),否则一会儿登录不成功

弄完之后检查一下权限,如果不是的话,改成响应的权限就ok了

在登录之前,要确认一下目标主机是否允许密匙对登录,一般都是打开的,如果没有打开就自己打开

(查看 /etc/ssh/sshd_config 文件内容 中的 PubkeyAuthentication 这一项是否为 yes,如果不是就自己修改成yes之后重启sshd服务 )

为了避免繁琐的每次都敲一长串 user@host 这样的命令, 可以自己在.ssh 目录下建一个config文件,文件内容如下,想要多了解一下配置参数使用的,可以看 linux ssh_config和sshd_config配置文件

文件建立好之后,直接使用自己定义的别名登录,非常方便快捷

如果是自己局域网搭建的机器,倒不用在意服务器的安全问题,但如果是暴露在公网上的机器,可以通过公网ip登录的,一定要注意自己服务器的安全问题,最起码不能开放默认端口,以及密码登录

在服务器上查看一下登录的日志,可以看到很多想要尝试登陆机器的人,所以公网上面的机器一定要做好自我保护

这里只列出一小部分的日志

统计一下,可以看到有29190次登录失败的记录

我们改掉默认的端口,以及禁用密码登录,只支持密匙对登录,这样一来,提高了服务器本身的安全性,至少没那么容易被别人登录上来为所欲为。

在服务器上修改sshd的配置文件

保存之后,重启sshd服务

使用自己定义的端口登录


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存