目錄
SSH是什么?
如何知道一個服務(wù)是否運行??
1、看進程
2、看端口
sshd表示什么呢?
我們將修改ssh服務(wù)端口號為2244端口,并禁用root用戶登錄
1、修改端口號為2244
2、禁止root用戶登錄
3、完成后我們重啟sshd服務(wù)
4、擴展添加歡迎橫幅文件
5、測試是否通過2244端口才能連接ssh服務(wù),是否不能通過root用戶連接ssh服務(wù):
當(dāng)然我們可以使用ssh命令遠程登錄
如果ssh遠程連接不上,如何排查?
scp命令的使用:
免密通道建立實驗:
免密通道建立的好處:2臺機器之間傳輸文件或者執(zhí)行命令,不需要輸入密碼了
步驟:
1、在客戶機上使用root用戶登錄
2、上傳公鑰到服務(wù)器
3、測試密鑰登錄,免密登錄
在Xshell里也進行免密通道的配置:
我們?nèi)绾螌SH訪問加固,使安全性更加牢固呢?
1、修改端口
2、禁用root用戶
3、升級openssh
4、創(chuàng)建堡壘機\跳板機
跳板機或堡壘機的作用是什么呢?
如何做的讓內(nèi)外的服務(wù)器只允許堡壘機/跳板機訪問?? ? 1.iptables? ? 2.tcp wrappers
堡壘機推薦使用軟件:jumpserver軟件
SSH是什么?
OpenSSH is the premier connectivity tool for remote login with the SSH protocol.?
OpenSSH 是一個比較早的用于遠程登錄連接使用的工具,底層是使用ssh協(xié)議
SSH(Secure Shell)是一種網(wǎng)絡(luò)協(xié)議,用于實現(xiàn)遠程登錄計算機、數(shù)據(jù)傳輸和遠程執(zhí)行命令等操作的安全加密方式。與傳統(tǒng)的遠程登錄方式如Telnet不同,SSH使用加密技術(shù)對通信過程進行了保護,提高了網(wǎng)絡(luò)通信的安全性。
具體來說,SSH協(xié)議有以下幾個特點:
加密傳輸:SSH對數(shù)據(jù)進行了加密處理,在網(wǎng)絡(luò)上傳輸時可以有效防止數(shù)據(jù)被非法監(jiān)聽或篡改,保證通信安全性。
驗證身份:SSH使用公鑰加密技術(shù),可以驗證遠程服務(wù)器的身份,并且客戶端可以使用用戶名和密碼等憑證進行認(rèn)證,確保遠程操作的合法性。
遠程協(xié)作:SSH實現(xiàn)了在遠程終端上執(zhí)行本地命令和向遠程主機傳輸文件等功能,方便用戶進行遠程操作和協(xié)作開發(fā)。
通過SSH協(xié)議,用戶可以通過終端、命令行等方式遠程登錄到其他計算機,進行命令行操作、管理和維護等任務(wù)。同時,SSH也提供了SCP、SFTP等文件傳輸協(xié)議,可以方便地在本地計算機和遠程服務(wù)器之間傳輸文件。
需要注意的是,SSH協(xié)議是一種開放標(biāo)準(zhǔn),包含在許多操作系統(tǒng)中,并可使用各種SSH客戶端和服務(wù)器進行實現(xiàn)和使用。由于SSH協(xié)議的安全性高,因此它成為了Linux系統(tǒng)遠程登錄的標(biāo)準(zhǔn)方式,并廣泛用于云計算、網(wǎng)絡(luò)管理、軟件開發(fā)等領(lǐng)域。
telnet服務(wù): 遠程控制的服務(wù): 在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)是明文的,telnet這個遠程控制服務(wù)很少使用了
查看ssh的版本:
[root@localhost lianxi]# rpm -q openssh
openssh-7.4p1-21.el7.x86_64
[root@localhost lianxi]#?
默認(rèn)linux系統(tǒng)是安裝,centos系統(tǒng)默認(rèn)安裝
Ubuntu需要去指定安裝
openssh安裝包的作用:
[root@localhost lianxi]# rpm -qa|grep openssh
openssh-clients-7.4p1-21.el7.x86_64 ? --》提供工具的
openssh-7.4p1-21.el7.x86_64 ? ? ? ? ?--》提供工具的
openssh-server-7.4p1-21.el7.x86_64 ? --》提供ssh 服務(wù)的
[root@localhost lianxi]#??
如何知道一個服務(wù)是否運行??
1、看進程
2、看端口
sshd表示什么呢?
他表示的是ssh服務(wù)的守護進程(sshd)
d表示:daemon 守護進程: 一直在內(nèi)存里運行的進程(父進程)
[root@localhost lianxi]# pstree -p|grep sshd? ? ? ?#sshd的進程結(jié)構(gòu)
? ? ? ? ? ?|-sshd(1179)-+-sshd(12759)---bash(12766)
? ? ? ? ? ?| ? ? ? ? ? ?`-sshd(15353)---bash(15360)-+-grep(18956)
[root@localhost lianxi]#?
下圖為sshd的連接示意圖:?
配置文件目錄:/etc/ssh
配置文件的作用就是給應(yīng)用程序傳遞參數(shù)
sshd_config --》服務(wù)器端的配置文件? --》一般修改的是它
ssh_config --》客戶端命令的配置文件
進程名字: sshd ?-->sshd daemon
默認(rèn)占用的端口號是:22sshd_config ?--》sshd進程的配置文件
#Port 22 ?告訴sshd進程占用22號端口
下面我們完成一個實驗:
我們將修改ssh服務(wù)端口號為2244端口,并禁用root用戶登錄
(前提是我們關(guān)閉selinux服務(wù),這個服務(wù)會加強linux的安全性,當(dāng)我們?nèi)バ薷膕shd服務(wù)的端口號的時候,會被拒絕,并且我們關(guān)閉了防火墻服務(wù))
[root@localhost ssh]# getenforce ?查看selinux的狀態(tài)
Enforcing ?強制執(zhí)行的
[root@localhost ssh]# setenforce 0 ?臨時關(guān)閉selinux ? 1 ? 開啟selinux?
[root@localhost ssh]# getenforce?
Permissive ?寬容模式
[root@localhost ssh]#?關(guān)閉防火墻,因為防火墻開啟不允許3001端口隨便進入的
[root@localhost lianxi]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@localhost lianxi]#?
1、修改端口號為2244
2、禁止root用戶登錄
3、完成后我們重啟sshd服務(wù)
[root@localhost ssh]# service sshd restart 重啟sshd服務(wù)
Redirecting to /bin/systemctl restart sshd.service
[root@localhost ssh]#
4、擴展添加歡迎橫幅文件
其中的welcome.txt文件內(nèi)保存的就是祝賀詞,我們可以隨意添加。
[root@fengdeyong ssh]# cat /etc/ssh/welcome.txt
welcome to sanchuang ssh server
[root@fengdeyong ssh]#
5、測試是否通過2244端口才能連接ssh服務(wù),是否不能通過root用戶連接ssh服務(wù):
[root@fengdeyong ssh]# useradd zhenyani 創(chuàng)建連接用戶
[root@fengdeyong ssh]# echo 123456|passwd zhenyani --stdin
更改用戶 zhenyani 的密碼 。
passwd:所有的身份驗證令牌已經(jīng)成功更新。
[root@fengdeyong ssh]#
我們通過Xshell來連接
當(dāng)然我們可以使用ssh命令遠程登錄
ssh的命令的使用
1.只是登陸
[root@manager161 .ssh]# ssh root@192.168.0.180 ?--》推薦
[daijun@manager161 ~]$ ssh 192.168.0.180 ?不指定登陸用戶,默認(rèn)會使用當(dāng)前的用戶名遠程連接
[daijun@manager161 ~]$ ssh -l root 192.168.0.180
root@192.168.0.180's password:?
Last login: Sat Jun 26 11:27:12 2021 from 192.168.0.163
[root@www ~]# exit ?退出
登出
Connection to 192.168.0.180 closed.
[daijun@manager161 ~]$?-p :可以指定端口號
2.運行遠程機器上的腳本或者命令
[root@manager161 .ssh]# ssh 192.168.0.180 ?mkdir ?/luogg{1..10}
[root@manager161 .ssh]# ssh 192.168.0.180 ?sudo mkdir ?/danyh{1..10}
[root@manager161 .ssh]#?
[root@manager161 .ssh]# ssh 192.168.0.180 ?sudo bash /lianxi/scan_lan_ip.sh
如果ssh遠程連接不上,如何排查?
ssh服務(wù)遠程連接不上
排錯思路:
? ? 1.網(wǎng)絡(luò)是否通暢
?? ??? ?ping
? ? 2.檢查進程或者服務(wù)是否開啟
?? ??? ?ps ?aux|grep sshd
?? ??? ?service sshd status? ? 3.檢查端口
?? ??? ?netstat -anplut
?? ??? ?查看sshd ?listen狀態(tài)是否存在? ? 4.看日志看錯誤提醒
?? ?[root@sanchuang ~]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
[root@sanchuang ~]#journalctl -xe
scp命令的使用:
遠程傳輸文件的命令
[root@nameserver named]# scp ?sc.com.zone ?192.168.0.180:/root ? ? #前面的代表源地址,后面的代表目的地
scp命令的使用
?? ?scp命令推送文件在linux服務(wù)器之間
?? ?[root@manager161 lianxi9]# scp mkdir.sh root@192.168.0.180:/root
mkdir.sh ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?100% ? 42 ? ?10.9KB/s ? 00:00 ? ?
[root@manager161 lianxi9]#?
[root@manager161 lianxi9]# scp root@192.168.0.180:/etc/passwd ?.
passwd ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?100% 1792 ? 953.1KB/s ? 00:00 ? ?
[root@manager161 lianxi9]# ls
mkdir.sh ?passwd
[root@manager161 lianxi9]#
[root@manager161 lianxi9]# scp -r root@192.168.0.180:/boot ?. ? 復(fù)制文件需要接-r選項
[root@manager161 lianxi9]# cat mkdir.sh ? ?是具體需要做什么工作的腳本
for i in {1..10}
do
?? ?mkdir -p feng$i
done
[root@manager161 lianxi9]# cat ctrl_mysql.sh ? 實現(xiàn)傳遞腳本到服務(wù)器,然后執(zhí)行傳遞過去腳本
for i in {1..100}
do
?? ?scp ?/lianxi9/mkdir.sh root@192.168.0.$i:/root
?? ?ssh root@192.168.0.$i bash /root/mkdir.sh
done
[root@manager161 lianxi9]#?復(fù)制文件夾的話需要添加? ?-r
免密通道建立實驗:
免密通道建立的好處:2臺機器之間傳輸文件或者執(zhí)行命令,不需要輸入密碼了
提前準(zhǔn)備兩臺linux服務(wù)器,安裝號openssh服務(wù)
建議使用centos7的系統(tǒng)
對兩臺機器的IP地址進行配置(橋接、NAT)
橋接模式:
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
#IPADDR=172.20.10.3
IPADDR=192.168.2.149
PREFIX=24
#GATEWAY=172.20.10.1
GATEWAY=192.168.2.1
DNS1=114.114.114.114
NAT模式:
BOOTPROTO=dhcp
NAME=ens33
DEVICE=ens33
ONBOOT=yes
兩臺機器的IP地址分別為192.168.2.149(client) 和 192.168.2.17(server)
下面我們將對其進行免密通道的建立
兩臺機器默認(rèn)是允許root用戶登錄,默認(rèn)打開的端口是22號
單項信任關(guān)系
雙向信任關(guān)系
步驟:
1、在客戶機上使用root用戶登錄
[root@mysql ssh]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #一直回車即可,注意不要設(shè)置密碼
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:MFcRVA8s8JwDYszCsPzRrTiGQtiX35S9JsOoBx9ctNk root@mysql
The key's randomart image is:
+---[RSA 2048]----+
| .o oo +o==o |
|.o .o+o+ @...o |
|..+ +.+ O E. . |
|. + = @ o |
|. . * * S o |
| . . = . + |
| . o |
| . |
| |
+----[SHA256]-----+
[root@mysql ssh]# cd ~/.ssh
[root@mysql .ssh]# ls
id_rsa id_rsa.pub known_hosts
[root@mysql .ssh]# ll
總用量 12
-rw------- 1 root root 1679 4月 14 19:54 id_rsa
-rw-r--r-- 1 root root 392 4月 14 19:54 id_rsa.pub
-rw-r--r-- 1 root root 175 4月 14 07:16 known_hosts
[root@mysql .ssh]#
2、上傳公鑰到服務(wù)器
ssh-copy-id 命令會自動幫助我們將公鑰上傳到服務(wù)器上去
[root@mysql .ssh]# ssh-copy-id root@192.168.2.17
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.2.17 (192.168.2.17)' can't be established.
ECDSA key fingerprint is SHA256:0Q2Gbu5Qj6ads614hulwxfDqGB6XnsMvwLMpQxFXJtk.
ECDSA key fingerprint is MD5:9a:d4:88:61:e7:96:c6:e7:94:11:2d:3f:47:c2:1f:c4.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.2.17's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@192.168.2.17'"
and check to make sure that only the key(s) you wanted were added.
[root@mysql .ssh]#
?我們能在服務(wù)器上看到authorized_keys文件(存放公鑰的文件)
3、測試密鑰登錄,免密登錄
在服務(wù)器端重復(fù)如上操作,即可形成雙向信任關(guān)系
ansible軟件運用到的就是ssh服務(wù)
在Xshell里也進行免密通道的配置:
1、我們先點開Xshell里的工具中的新建用戶密鑰生成向?qū)?/strong>
然后一直點擊下一步,記住不需要設(shè)置密碼哦
最后將生成的公鑰傳輸?shù)侥愕淖烂嫔?,方便傳輸?shù)侥愕腖inux機器里,我這里時使用Xftp傳輸?shù)絃inux上的,當(dāng)然我們也可以使用rz命令傳輸,你必須下載lrzsz工具包,rz命令只能上傳文件,如果需要從遠程主機下載文件,應(yīng)該使用sz命令。
將傳輸好的文件重定向到authorized_keys文件中去(注:重定向會導(dǎo)致你輸入的密鑰沒有分段,因此需要注意文件是否出現(xiàn)沒有分段的現(xiàn)象)
[root@mysql .ssh]# cat id_rsa_2048_mysql_主.pub >> .ssh/authorized_keys
完成這一步后,我們回到Xshell上,進行免密連接操作。
我們配置用戶身份驗證如我下圖所示。
?
最后配置IP地址和端口號即可
連接成功!
我們?nèi)绾螌SH訪問加固,使安全性更加牢固呢?
1、修改端口
2、禁用root用戶
為什么ssh的時候不能使用root?登錄進去了可以使用root?
3、升級openssh
[root@sanchuang ssh]# yum update openssh openssh-server
參考網(wǎng)站:pub-OpenBSD-OpenSSH-portable安裝包下載_開源鏡像站-阿里云
4、創(chuàng)建堡壘機\跳板機
跳板機或堡壘機的作用是什么呢?
跳板機是一種安全的遠程訪問方式,用于通過中間服務(wù)器(即跳板機)來訪問遠程網(wǎng)絡(luò)資源。它的作用主要有以下幾個方面:
增強安全性:使用跳板機可以增強網(wǎng)絡(luò)安全性。在實際應(yīng)用中,跳板機通常只允許特定的用戶進行登錄,并采用更加嚴(yán)格的身份驗證、訪問控制等措施,從而有效地防止未經(jīng)授權(quán)的用戶訪問遠程資源。
簡化管理:跳板機還可以簡化遠程資源的管理。由于跳板機只需要開放一個端口,就可以讓多個用戶進行遠程訪問,因此可以更加方便地統(tǒng)一管理和監(jiān)控遠程資源的使用情況。
節(jié)約成本:使用跳板機可以節(jié)約企業(yè)的運維成本。由于跳板機可以減少直接連接到遠程設(shè)備的數(shù)量,因此可以減少設(shè)備的維護和管理成本。此外,使用跳板機可以集中監(jiān)控遠程訪問日志,及時發(fā)現(xiàn)安全問題,減少安全事件發(fā)生的概率。
總之,跳板機是一種非常重要的安全管理工具,可以幫助企業(yè)加強網(wǎng)絡(luò)安全,簡化系統(tǒng)管理,并節(jié)約成本。在實際應(yīng)用中,跳板機被廣泛應(yīng)用于運維、開發(fā)、測試等各個領(lǐng)域,成為了重要的遠程管理方式之一。文章來源:http://www.zghlxwxcb.cn/news/detail-779905.html
如何做的讓內(nèi)外的服務(wù)器只允許堡壘機/跳板機訪問?
? ? 1.iptables
? ? 2.tcp wrappers
SSH使用TCP Wrappers實現(xiàn)訪問控制
主要配置文件
/etc/hosts.allow --》白名單
/etc/hosts.deny --》黑名單
TCP Wrappers的訪問控制原則
首先檢查 hosts.allow 文件,若找到相匹配的策略,則允許訪問
否則繼續(xù)檢查 hosts.deny 文件,若找到相匹配的策略,則拒絕訪問
如果兩個文件中都沒有相匹配的策略,則允許訪問
[root@sanchuang ~]# cat /etc/hosts.deny
sshd:all
[root@sanchuang ~]# cat /etc/hosts.allow
sshd:192.168.2.*,114.11.11.1
[root@sanchuang ~]#
[root@sanchuang ~]# tail -f /var/log/secure
Nov 8 16:22:39 sanchuang sshd[3701]: refused connect from 192.168.2.198 (192.168.2.198)
Nov 8 16:22:40 sanchuang sshd[3702]: refused connect from 192.168.2.117 (192.168.2.117)
[root@ssh-server .ssh]# ssh -p 3001 root@192.168.2.197
ssh_exchange_identification: read: Connection reset by peer
[root@ssh-server .ssh]#
不需要刷新服務(wù),立馬生效
堡壘機推薦使用軟件:jumpserver軟件
官網(wǎng):JumpServer - 開源堡壘機 - 官網(wǎng)文章來源地址http://www.zghlxwxcb.cn/news/detail-779905.html
到了這里,關(guān)于Linux - SSH服務(wù) - SCP - 免密通道建立的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!