【Linux】SSH远程终端连接工具(SSH基本用法、ssh服务认证类型、ssh服务常见配置、常见配置总结、远程拷贝scp命令)

SSH是一种用于加密远程登录的网络协议,常用于Linux系统。它包括服务端软件OpenSSH和多种客户端工具,如SecureCRT、Putty、xshell。SSH默认使用22端口,支持SSH1.x和2.x,但2.x更安全。SSH工作流程涉及公钥和私钥的交互验证。配置SSH可修改默认端口、禁止root登录、限制监听IP和禁用密码登录,以增强安全性。scp是SSH附带的加密远程拷贝命令。

一、SSH远程终端连接工具

1、SSH简介

SSH是一种网络协议,用于计算机之间的加密登录。最早的时候,互联网通信都是明 文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH 协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获 得推广,目前已经成为Linux系统的标准配置。

2、SSH登录原理

也就是客户端先向服务端发送登录请求;客户端收到请求后发送自己的公钥;客户端收到公钥后将所有登录信息加密后传送到服务端进行登录;服务端此时已经收到请求了,它需要客户端使用私钥解密登录信息,确定是用户本人,验证成功后才允许登录成功。

3、SSH结构

SSH服务由服务端软件OpenSSH(openssl)和客户端(常见的有SSH)

SecureCRT,Putty,xshell组成,SSH服务默认使用22端口提供服务,它有两个不兼容的SSH协议版本,分别是1.x和2.x

下面我们看下服务端上的ssh相关软件。

[root@keepalived-master ~]# rpm -qa | egrep "openss*"
openssl-libs-1.0.2k-21.el7_9.x86_64
openssl-1.0.2k-21.el7_9.x86_64
openssh-server-7.4p1-16.el7.x86_64
openssh-7.4p1-16.el7.x86_64
openssh-clients-7.4p1-16.el7.x86_64
openssl-devel-1.0.2k-21.el7_9.x86_64
  • OpenSSH同时支持SSH1.x和2.x。用SSH 2.x的客户端程序不能连接到SSH 1.x的 服务程序上。

  • SSH服务端是一个守护进程(daemon),它在后台运行并响应来自客户端的连 接请求。SSH服务端的进程名为sshd,负责实时监听远程SSH客户端的连接请 求,并进行处理,一般包括公共密钥认证,密钥交换,对称密钥加密和非安全连 接等。这个SSH服务就是我们前面基础系统优化中保留开机自启动的服务之一。

  • ssh客户端包含ssh以及像scp(远程拷贝),slogin(远程登录),sftp(安全 FTP文件传输)等应用程序。

  • ssh的工作机制大致是本地的ssh客户端先发送一个连接请求到远程的ssh服务 端,服务端检查连接的客户端发送的数据包和IP地址,如果确认合法,就会发送 密钥发回给客户端,自此连接建立。


一般来说,每个用户都会在对应的家目录下生成一个 .ssh 文件夹,如 tinychen 用 户则为/home/tinychen/.ssh ,而 root 用户则为 /root/.ssh 。如果是手动创建 的 .ssh 文件夹,还需要注意权限问题。一般来说 .ssh 文件夹的权限为700,私钥为 600,公钥为644。

[root@NAT1 ~]# ls -lA | grep ssh
-rw-------. 1 root root       35 Dec 16 17:38 .lesshst
drwx------. 2 root root       25 Dec  2 09:35 .ssh
[root@NAT1 ~]# cd .ssh
[root@NAT1 .ssh]# ls -l
total 4
-rw-r--r--. 1 root root 354 Dec 14 21:33 known_hosts

二、SSH基本用法

1、语法 :

ssh -p 22 user@host

2、参数:

-p:指定端口号。

user:登录的用户名。

host:登录的主机。

默认的端口号为22,当端口号为22的时候,可以省略-p 22,直接使用如下方式:

ssh user@host
# “@”:前边为用户名,如果用当前用户连接,可以不指定用户名
# “@”:后面为要连接的服务器的IP

此外,如果本地正在使用的用户名与远程登录的用户名一致,登录用户名也是可以省略的,即如下:

ssh host

3、举例:

我们登录一个普通用户tom:

也就是我在A上使用普通用户tom登录了,如果我要在A上登录B上的普通用户tom,则可以直接输入IP号;但我要是在A上使用普通用户tom登录了,我要在A上登录B上的超级用户root,则要输入用户名@IP号。


当第一次SSH连接的时候,本地会产生一个密钥文件~/.ssh/known_hosts(多个密 钥)


第一次远程登录,会出现高亮显示部分,因为要将密钥添加到本地的密钥文件中;

第二次远程登录,就不会出现高亮显示部分,因为密钥已经存在中;


如果连接不上,报错字符串对应的可能问题:

1,no route to host 可能为防火墙影响

2,Connection refused可能为防火墙,Connection refused 还可能是连接的对端 服务没开或者端口改变了。

三、ssh服务认证类型

1、基于口令认证

基于口令的安全验证的方式就是大家现在一直在用的,只要知道服务器的SSH连接帐 号和口令(当然也要知道对应服务器的 IP及开放的 SSH端口,默认为22 ),就可以通过 ssh客户端登录到这台远程主机。此时,联机过程中所有传输的数据都是加密的。

2、基于密钥认证

优点:不用输入密码,也就是免密登录

首先在客户端生成一对密钥 ;使用默认算法则不需要加-t

将客户端的公钥传到服务器端

测试

四、ssh服务常见配置

SSH服务的配置文件为/etc/ssh/sshd_config

1、修改默认端口

通过看配置文件发现ssh服务的默认端口是22,很多时候我们的服务器被不是被人针 对了,而是对方在扫一个网段中开启22端口的机器,你的机器密码又是很简单的 111111之类的,你不被黑谁被黑,所以我们要把默认端口改了,这样就不容易被人 扫出来恶意了。

步骤:

①修改配置并重启服务

将端口改为2201

②使用22端口连接

显示连接拒绝

③使用2201端口进行连接

显示可以连接


我们把默认端口改为2201,修改端口后要记得重启服务systemctl restart sshd;

(注意改的这个端口一定不能占用别的服务的默认端口,以免别的服务启动不起来)

注意:

如果按以上步骤不能使用新端口进行连接,可能是没有关防火墙和selinux服务;


2、禁止root登录

root在我们系统中是一个特殊的存在,他是系统管理员,也就意味着他在系统中可以 为所欲为,所以它也是我们要特别关注的对象,我们可以在一般操作中用普通用户操 作,在有需要修改一些系统设置的时候再从普通用户切换到root用户,这样可以最大 限度的避免因为误操作而对系统造成破坏,同时也可以避免黑客使用root用户名来暴 力破解密码登录系统。

步骤:

①进入文件改配

将yes改为no

②改完重启服务

③查看效果

root用户权限被拒绝

登录普通用户:

登录成功;

3、限制ssh监听的IP

这个适用于服务器有多个IP,这样我们就可以只监听内网IP,这样就只能用在同一个 局域网的机器去连接,而我们只需要让在同一个服务器的另一台机器监听在外网,这 样就可以实现在外网也访问服务器了,方法如下:

步骤:

①添加一个内网网卡,并重启虚拟机;

ip a查看,多了一个内外网卡:

①修改配置并重启服务

仅限192.168.91.140去连接ssh

③退出外网ip

退出外网ip重新用外网ip连,发现连接不上;

因为之前是通过外网ip192.168.42.28连的,现在将监听ip改成了内外192.168.91.140,所以外网ip已经连不上了;

使用内网ip连接:

4、禁止使用密码登录

在前面我们说过使用key认证登录的,这是一种比较安全的登录方式,所以为了提高 安全性我们可以通过这种方式来登录服务器,再禁止使用密码登录使用key认证登录 我已经说过了,在这里就说下如何禁止使用密码登录,也只需要修改一下配置文件就 可以了,如下:

步骤 :

①修改配置并重启服务

这个时候我们是无法用密码登录系统的

而我们需要传公钥就得要密码这是很矛盾的,所以需要我们提前把公钥传给服务器, 或者临时开启密码登录,然后就能实现登录了

五、常见配置总结

1、常见的SSH服务器监听的选项如下:

1 Port 22 //监听的端口号为22
2 Protocol 2 //使用SSH V2协议
3 ListenAdderss 0.0.0.0 //监听的地址为所有的地址
4 UserDNS no //禁止DNS反向解析 建议用no,不需要对DNS进行反向解
析,可以加快ssh连接速度。

2、常见用户登录控制选项如下 :

PermitRootLogin no // 禁止root用户登录
PermitEmptyPasswords no // 禁止空密码用户登录 一旦启用了
PermitEmptyPasswords yes,那么所有无密码的用户也就可以远程登录了,并且还是
免密码的方式。
LoginGraceTime 2m // 登录验证时间为2分钟
MaxAuthTries 6 // 最大重试次数6次
AllowUsers steven // 只允许steven用户登录
DenyUsers steven // 不允许登录用户 steven
MaxSessions // 最大终端会话个数

3、常见登录验证方式如下:

1 PasswordAuthentication yes //启用密码验证
2 PubkeyAuthentication yes //启用密匙验证
3 AuthorsizedKeysFile .ssh/authorized_keys //指定公钥数据库文件

六、ssh客户端附带的远程拷贝scp命令

scp基本语法:scp -secure copy

每次都是全量拷贝,增量拷贝用rsync

#推:PUSH
scp -P22 -r -p /tmp/chensiqi root@172.16.1.41:/tmp
#拉:PULL
scp -P22 -rp root@172.16.1.41:/tmp/chensiqi /opt/

scp为远程拷贝文件或目录的命令

-P(大写):接端口,默认22
-r:递归,表示拷贝目录
-p:表示在拷贝前后保持文件或目录属性
-l limit:限制速度

举例:

PUSH将文件拷给别人

PULL从别人那拷走文件


scp知识小结

1,scp是加密的远程拷贝,而cp仅为本地拷贝

2,可以把数据从一台机器推送到另一台机器,也可以从其他服务器把数据拉回到本 地执行命令的服务器

3,每次都是全量完整拷贝,因此,效率不高,适合第一次拷贝用,如果需要增量拷 贝,用rsync

4、一定要加文件存放路径


七、知识小结

1)SSH是安全的加密协议,用于远程连接Linux服务器。

2)SSH默认端口是22,安全协议版本SSH2,除了2之外还有SSH1(有漏洞).

3)SSH服务端主要包含两个服务功能SSH远程连接和SFTP服务。

4)Linux SSH 客户端包含ssh远程连接命令,以及远程拷贝scp命令等。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LKsTaRt~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值