openssh與安全
★ ssh服務的最佳實踐: ★
1 不要使用預設埠
2 禁止使用協議版本1
3 限制可登陸多使用者,最好做一個白名單
4 設定空閒會話超時時長 (使用者連上去無操作多長時間自動端看連線)
5 利用防火牆設定ssh的訪問策略,例如僅允許哪些主機訪問連線
6 僅監聽特定的ip地址 (如果有多個ip,還是內外網,還有***,那就僅開通內網遠端登入,通過遠端***,再登入伺服器)
7 基於口令認證時,要採用強密碼策略 (不低於8位,常換,不用弱口令,各類字元都有)
8 使用基於祕鑰的認證
9 禁止使用空口令
10 禁止管理員直接登入
11 限制ssh的訪問頻度(密碼錯了幾次就斷開)和併發線上數
12 做好日誌分析,使用awk等做好統計
ssh protocol ssh協議的版本:
v1:不安全(有些老的程式只支援第一版,所以有時還是要開啟)
v2:
Openssh:
sshd :配置檔案 /etc/ssh/sshd_config
ssh: 配置檔案 /etc/ssh/ssh_config
客戶端程式ssh:
ssh [option] [[email protected]]host [COMMAND]
ssh -l user [option] host [COMMAND]
常用選項:
-l user指定的使用者登入遠端主機
-p port指明遠端伺服器的埠;為了伺服器安全是要修改ssh的埠,
-b bind_ip把服務繫結在某個
-X : 支援x11轉發
-Y : 支援信任的X11轉發
X:協議,x-windows圖形化視窗,也是C/S架構圖形為C,主機為S
X11轉發的作用:在本地顯示遠端主機上面的圖形視窗,首先本地為X圖形介面,或者提供了x server,並不需要遠端主機上面有圖形介面功能
-o 後面根特定的選項 -o StrictHostKeyChecking=no不做嚴格的主機登入檢查,不輸入yes
-t強制偽tty分配,你想連線的sshd伺服器不能一次性到達,需要中間先登入一個sshd伺服器,通過跳板機到達
~】# ssh -t remoteserver1 ssh remoteserver2
先連線遠端主機1,通過遠端主機分配偽終端,跳轉到遠端主機2
當然在此過程中你要先後輸入兩次密碼了,(你懂得)
省略command則表示為登入這臺主機;如果使用命令,則表示臨時切換主機執行完指定命令後退出遠端的主機
~】# ssh 172.16.1.1 (使用本地登入使用者名稱作為遠端登入使用者名稱,並不是root就是預設使用者)
~】# ssh [email protected]
~】# ssh -p 20000 172.16.1.5
~】# ssh 172.16.1.1 “shutdown -h now” (關機你就連線不上了^_^)
~】# ssh -o StrictHostKeyChecking=no 172.16.1.4 第一次遠端登入時跳過yes確認遠端登入物件
[[email protected] xinetd.d]# ifconfig eth0 | grep "inet addr:" inet addr:172.16.1.2 Bcast:172.16.255.255 Mask:255.255.0.0 [[email protected] xinetd.d]# ssh 172.16.1.1 [email protected]'s password: Last login: Wed Jun 29 23:20:39 2016 from 172.16.250.146 [[email protected] ~]# ip addr show eno16777736 | grep "inet\b" inet 172.16.1.1/16 brd 172.16.255.255 scope global eno16777736 [[email protected] ~]# exit 登出 Connection to 172.16.1.1 closed. [[email protected] xinetd.d]# ssh 172.16.1.1 "ip addr show eno16777736 | grep 'inet\b' " [email protected]'s password: inet 172.16.1.1/16 brd 172.16.255.255 scope global eno16777736 |
接收的所有認可的伺服器列表:~/.ssh/known_hosts 一個一行
ssh的配置文件/etc/ssh/ssh_config 修改檔案則以後會成為預設
OPTION1 VALUE
#開頭的是預設的
vim /etc/ssh/ssh_config
StrictHostKeyChecking no以後登入遠端主機不在第一次輸入yes,採用非嚴格的遠端登入
ssh主機認證:需要用到主機認證祕鑰,此祕鑰由伺服器端維護和提供
ssh支援的使用者認證:
基於口令的認證:使用者輸入賬號和密碼
基於祕鑰的認證:使用者提供一對金鑰,私鑰保留在客戶端,公鑰儲存在遠端伺服器端
ssh基於祕鑰的認證
ssh-keygen [-q] [-b bits] -t type [-f output_keyfile]
-q | 靜默模式 | -b | 祕鑰位數,512,1024,2048,4096,預設2048 |
-t | 指明祕鑰格式rsa,dsa,ecdsa橢圓曲線演算法,最好使用rsa或者ecdsa | -f | 儲存到哪個檔案當中 預設在~/.ssh目錄下 |
-P | 指明對私鑰加密的密碼 | -v | 除錯模式 |
-C | 壓縮方式 | -X | 只是X11轉發 |
-Y | 只是信任X11轉發 |
~】# ssh-keygen -t ecdsa 會在~/.ssh目錄下生成id_ecdsa私鑰和id_ecdsa.pub一對
~】# ssh-keygen -t rsa -P '' 指明私鑰密碼為空密碼,則會跳過讓你指定私鑰密碼環節
注:每個使用者的一對私鑰和公鑰是可以重複使用的,不用每次都執行一次建立一對祕鑰,不然會覆蓋原有的私鑰和公鑰,尤其是你已經開始使用了,如果還想連結更多臺的伺服器,直接使用已存在的公鑰傳輸給其他使用者
[[email protected] ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): 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: aa:a1:93:52:ca:12:82:64:13:7c:c9:0c:df:b5:f3:50 [email protected] The key's randomart p_w_picpath is: +--[ RSA 2048]----+ |..+ . . E | +-----------------+ |
在本地主機,將公鑰複製到要登入的遠端主機的某使用者的家目錄下的~/.ssh/authorized_keys 檔案中(有特定命令)
ssh-copy-id [-i [identity_file]] [[email protected]]machine
~】# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
~】# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
[[email protected] ~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected] /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 [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added. [[email protected] ~]# ssh 172.16.1.2 這個時候是不需輸入遠端使用者密碼 Enter passphrase for key '/root/.ssh/id_rsa': 如果每有給私鑰檔案加密,那麼直接可以登入成功 Last login: Tue Jun 28 12:15:15 2016 from 172.16.250.146 |
之後在遠端伺服器上會在相應使用者家目錄下面的.ssh目錄裡面有一個authorized_keys檔案
aushorized_keys檔案可以存放一到多個遠端公鑰登入的公鑰,一行一個(每行都很長所以在你看來佔據了很多行),所以不要隨便刪除這個檔案
[[email protected] .ssh]# cat authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCpAJFy7QTadK0ghnq63+BZ7Qzm5FLZ4XeVyb1kNwis6GkfyltnX2fzaeR5nLTM6uWHacfahin6Khy9nPX02jDFNMBYGUHg6NXHQLdGihYxv20j1zv4aZRlIPicuqktDM+c2Nda6Yzufun52gQvEzr9HELKMMIkEn6rs4GrY6TO2rG3mV5e8TM++MoV8i+8VZOfKK+I5buEHvBaz+oaQ7Y++WOcuOHir8Nn/wOoOZYrHAa7+qtPKYtEmUmT1eHqnJzdt2lpB0HZNIUuRikSVCCdI6QLmLb7E5xyuZmNB8F6owyenrGmyaerB2whKqoUMHjxCQt8ipr/yOfd/wK5BJV [email protected] 這是在遠端伺服器上的一個本地登入的登入公鑰,因為我這隻設定了一個,所以只有這一個,一個,看起來很多行 |
----------------------
*********************
----------------------
SSH埠轉發
v什麼是SSH埠轉發?
SSH 會自動加密和解密所有SSH 客戶端與服務端之間的網路資料。但是,SSH 還能夠將其他TCP 埠的網路資料通過SSH 連結來轉發,並且自動提供了相應的加密及解密服務。這一過程也被叫做“隧道”(tunneling),這是因為SSH 為其他TCP 連結提供了一個安全的通道來進行傳輸而得名。例如,Telnet,SMTP,LDAP 這些TCP 應用均能夠從中得益,避免了使用者名稱,密碼以及隱私資訊的明文傳輸。而與此同時,如果工作環境中的防火牆限制了一些網路埠的使用,但是允許SSH 的連線,也能夠通過將TCP 埠轉發來使用SSH 進行通訊
vSSH 埠轉發能夠提供兩大功能:
加密SSH Client 端至SSH Server 端之間的通訊資料
突破防火牆的限制完成一些之前無法建立的TCP 連線。
v本地轉發:
格式:-L localport:host:hostportsshserver
~】# ssh –L 9527:server1:23 -fN server2
本地埠:遠端主機:遠端主機埠 -N 後製定跳板機
~】#telnet 127.0.0.1 9527
當訪問本機的9527的埠時,被加密後轉發到server2的ssh服務,再解密被轉發到server1:23
dataàlocalhost:9527 àlocalhost:XXXXXàserver2:22àserver2:YYYYY àserver1:23
這裡server2為跳板機
v選項:
-f 後臺啟用
-N 不開遠端shell,一般是與-f搭配使用的
-g 啟用閘道器功能
上圖的步驟操作完成之後,會在後臺開啟這個隧道,當我們使用服務的時候就可以使用了:
~】# telnet 127.0.0.1 9527 在本地雖然是連線本地的埠,但是剛才我們已經開啟了埠轉發,有資料在這個埠走,就會通過ssh剛建立的隧道,傳輸到跳板機,跳板機再去幫你×××
這樣一個明文的telnet被封裝到ssh協議裡面,變得安全起來
v遠端轉發:
格式:-R sshserverport:host:hostportsshserver
~】# ssh–R 4000:server1:23 –N server2
讓跳板機遠端連線8023埠,家庭本地主機偵聽8023埠的訪問,如有訪問,就加密後轉發請求到家庭本機sshd服務,再由跳板機解密後轉發到serve1:23
Dataàlocalhost:8023àlocalhos:22àserver2:XXXàserver2:YYYàserver1:23
localhost 為家庭本地主機,server2為跳板機
注:遠端主機和本機主機兩種埠轉發雖然最後達到的效果一樣,但是賊在資料流向和埠之間的切換有很大不同
SSH動態埠轉發:
v需要配置動態埠的情況
當用firefox訪問internet時,本機的1080埠做為代理伺服器,firefox的訪問請求被轉發到sshserver上,由sshserver替之訪問internet
在本機firefox設定代理proxy:127.0.0.1:1080
格式: ~】# ssh -D 1080 [email protected]
scp命令: 與cp命令相似 基於ssh連線完成複製,跨主機加密以後完成資料傳輸
檔案:
遠端為目錄,則複製到目錄中,建立同名檔案
遠端為目錄,且檔案存在,覆蓋
遠端為檔案,則覆蓋
目錄: 複製目錄必須使用-r選項
遠端為目錄,則複製到這個目錄當中,新建一個同名目錄
遠端為檔案,不被允許
遠端為非存在目錄,則複製過去,之後重新命名
存在兩種情形:
PULL : scp [options] [[email protected]]host:/path/to/somefile /path/to/somefile
原始檔是遠端的,目標檔案是本地的,用遠端主機上拽檔案過來,要求指定使用者對遠端主機檔案有讀許可權
PUSH: scp [options] /path/to/somefile [[email protected]]host:/path/to/somefile
原始檔是本地的,目標檔案是遠端的,把檔案推送動遠端主機,要求指定使用者對遠端主機檔案有寫許可權
rsync 命令 (因為cp只能是每次都要拷貝一次,在增量備份當中顯得低效)
rsync就是通過ssh協議封裝了sync,基於ssh和rsh服務實現高效率的遠端系統之間複製檔案
使用安全的shll連線作為傳輸方式,比scp更快,只複製不同的檔案
~】# rsync -av /etc server1:/tmp複製目錄和目錄下檔案
~】# rsync -av /etc/ server1:/tmp 只複製目錄下的檔案 ,所以看好了後面有沒有/
~】# rsync -avz --delete /etc server1:/tmp 當/etc下面檔案發生增刪查改,再執行這條命令,遠端同步主機的/tmp目錄也會發生變化,結合crond可以實現資料同步
-n | 模擬複製過程 | -v | 顯示詳細過程 |
-r | 遞迴複製目錄樹 | -p | 保留許可權 |
-t | 保留時間戳 | -g | 保留組資訊 |
-o | 保留所有者資訊 | -l | 把符號連結檔案做為符號檔案進行復制 |
-L | 將軟連結檔案指向檔案複製 | -a | 存檔模式,相當於–rlptgoD,但不保留ACL(-A)和SELinux屬性(-X),同步所有 |
z | 壓縮 |
sftp命令: (openssh 自帶的一個元件)
ftp: file transfer protocol 明文傳輸
安全的檔案傳輸機制:
ftps: ftp over ssl
sftp: ftp over ssh
sftp: C/S架構
S:由sshd服務程序管理,是sshd的一個子系統,在centos系統上的openssh上為預設啟動狀態,所以預設不用配置
C:即sftp
連線至遠端主機:
~】# ftp [email protected]
ftp> help
ftp> get file_name /tmp 後者的/tmp是本地的目錄,意為下載某檔案到本地/tmp目錄
ftp> !COMMAND 加上!表示命令作用於本地主機,而不是遠端主機
[[email protected] mnt]# sftp [email protected]:/boot Connecting to 172.16.1.1... [email protected]'s password: 在這裡需要輸入密碼,如果做過ssh公鑰認證,則直接跳過此步驟 Changing to: /boot sftp> ls ......省略 grub grub2 sftp> cd / 可以任意切換遠端主機上面的任意位置,只要你遠端登入的使用者有足夠的許可權 sftp> ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var |
sshd (伺服器端)
配置目錄/etc/ssh目錄
ssh_host_key ssh_host_key.pub
ssh_host_dsa_key ssh_host_dsa_key.pub
ssh_host_rsa_key ssh_host_rsa_key.pub
這6個金鑰檔案是用於實現主機認證
配置檔案: /etc/ssh/sshd_config 操作前請備份
#空格開頭的為純註釋
格式: 配置指令 值
port | 埠,預設位22 |
AddressFamily | 地址家族,監聽ipv4或者ipv6 |
SyslogFacility | 系統日誌 |
LoginGraceTime | 使用者登入的等待時期,最多2分鐘,2分鐘不登入,自動斷開連線 |
MaxAuthTries | 輸入密碼錯誤最多幾次,預設6,但6要除以2,也就是3次,2還是2,1就是1,4還是2降低辭職避免暴力破解 |
ListenAddress | 指定監聽的ip,預設為0.0.0.0,監聽所有主機 |
Protocol | 定義協議版本,預設為2(1.2版本) |
LogLevel | 日誌級別 |
PermitRootLogin | 是否允許root使用者直接遠端登入;可以給關閉,之後用普通使用者遠端登入,之後su進來,之後使用root使用者 |
MaxSessions | 最大會話數量,預設10,最多可以有10個終端同時遠端登錄 |
RSAAuthentication | 預設為yes ,是否支援rsa的認證機制,指的基於公鑰的使用者認證,預設支援 |
PubkeyAuthentication | 預設為yes,支援基於公鑰的認證,它和上面的指令需要同時開啟,才能生效 |
AuthorizedKeysFile | 基於遠端基於公鑰認證的公鑰存放的檔案路徑,預設~/.ssh/authorized_keys |
RhostsRSAAuthentication | 預設為no,與遠端主機連線必須做RSA認證,一般我們遠端連線主機,如果以前從沒有通訊過,遠端主機會先發送一個它的一個金鑰(它的公鑰)給主機,我們需要通過yes後同意接受。如果把值改為yes,如果本地主機事先沒有這個金鑰,就無法建立連線,因此非常安全。我們可以先建立連線,等本地known_hosts檔案記錄了遠端主機的公鑰之後,我們再開啟這項功能。也可以把這個公鑰放到加密狗上面隨身攜帶,這項功能安全,但是也意為這麻煩,祕鑰沒了你就要去機房了 |
PasswordAuthentication | 預設為yes,是否允許基於口令遠端登入,如果開啟基於金鑰認證,則建議關閉 |
UsePAM | 預設為yes,基於PAM模組認證,系統認證功能必然會用到的機制 |
AcceptEnv | 預設為yes,基於PAM模組認證,系統認證功能必然會用到的機制 |
X11Forwarding | 預設yes,是否允許X11協議做轉發 |
PrintMotd | 預設為yes,是否在使用者登入時列印Motd資訊, 對應/etc/motd檔案 |
PrintLastLog | 預設為yes,是否顯示使用者上一次在幾點幾分通過什麼終端登入,這樣會洩露你的登入資訊,建議關閉,反正你也知道你上次大概什麼時候登入的,讓別人看到反而不好 |
UseDNS | 預設為yes,是不是每次登入的時候,都基於DNS反解對方的地址到主機名,建議改為no,因為有的時候因為網路問題,你可能會卡在遠端登入那一會才能登進系統 |
Subsystem | 子系統,運用程式為/usr/libexec/openssh/sftp-server |
StrictModes | 是否檢查家目錄相關檔案許可權是否正確,ssh遠端時使用的檔案 |
GatewayPort | 支援埠轉發 |
ClientAliveInterval | 0永遠不動,使用者連線上,多長時間不動斷開連線 |
ClientAliveCountMax | 會話最大連線數 |
PermitTunnel | 允許隧道,涉及到埠準發,可以開啟這個選項,如果你要設定的話 |
Banner | 指定自定義/etc/ssh.txt檔案,之後使用者ssh遠端登入的時候會列印檔案裡面的內容 |
以上是配置檔案中常用的,還有寫沒有寫在配置檔案中的可以man 檔案手冊
~】# man sshd_config 檢視服務配置文件的幫助文件
~】# man ssh_config
~】# man sshd 檢視sshd怎麼使用
修改完配置文件,要想生效,需要reload一下
~】# service sshd reload
6版本上: 服務指令碼 --> /etc/rc.d/init.d/sshd
7版本上:Systemd Unit File ---> /usr/lib/systemd/system/sshd.service
~】# systemctl reload sshd
限制可遠端登入的使用者
~】# vim /etc/ssh/sshd_config
寫入
AllowUsers user1 user2 user3空格隔開
Allowgroups group1
這是白名單
DenyUsers user1 user2
DenyGroups group1
這是黑名單
黑名單和白名單隻能使用一個,如果同時使用那就拒絕大於允許
補充:如果修改了sshd的埠,同時你開啟了防火牆和selinux的話,首先要調整防火牆策略,改個埠,刪了以前那條就行
對於selinux:
~ 】# tail /var/log/messages 檢視selinux的日誌
~ 】# sealert -l 15d342-54ef-8982dfc6e0 這是根據日誌提醒操作的
~ 】# semanage port -a -t ssh_port_t -p tcp 20000 這是其上命令建議的操作
~ 】# semange port -l | grep ssh 檢視是否新增埠成功
ssh 協議的另一個實現:dropbear
輕量化實現,多使用者嵌入式方案當中,使用機制和openssh大致相同 (在無線路由器上就是這樣允許遠端登入的)
~】# yum install dropbear -y (epel源裡面有)
配置目錄:/etc/dropbear
服務端程式:/usr/sbin/dropbear
客戶端程式:/usr/bin/dbclient
為dropbear生成主機祕鑰:/usr/bin/dropbearkey
~】# dropbearkey -t rsa -s 2048 -f /etc/dropbear/dropbear_rsa_host_key
~】# dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key (因為dss只支援1024位,所以不用指定)
~】# dropbearkey -t ecdsa -s 521 -f /etc/dropbear/dropbear_ecdsa_host_key(橢圓曲線,最長支援521位)
~】# dropbear -p 20000 -E -F
-E 為把標準輸出從執行日誌改為錯誤輸出,這樣資訊就會顯示在終端上
-F 前臺執行,測試的時候使用這兩項,平時開啟,不用
-p 指定開啟服務使用的埠,預設是22,但是這個和ssh衝突,測試需要修改,或者停sshd
另一臺主機登入測試:
~】# ssh -p 20000 172.16.1.1
~】# dbclient-p 20000 172.16.1.1
如果測試都沒有問題,可以開啟服務了systectl命令開啟此服務,但是因為不想使用預設埠22,我們需要
~】# cat /usr/lib/systemd/system/dropbear.service
EnvironmentFile=-/etc/sysconfig/dropbear
ExecStart=/usr/sbin/dropbear -E -F $OPTIONS
這兩行的意思就是開啟的時候,會呼叫/etc/sysconfig/dropbear檔案裡面的OPTIONS引數
~】# vim /etc/sysconfig/dropbear 檔案為空
寫入
OPTIONS=“-p 20000”
~】# systectl start dropber.service
~】# ss -tnl顯示20000埠是否監聽
這裡演示一下我們測試dropbear能夠服務可以使用
首先我們要在服務端先建立好鑰匙
[[email protected] xinetd.d]# dropbearkey -t rsa -s 2048 -f /etc/dropbear/dropbear_rsa_host_key Generating key, this may take a while... Public key portion is: ssh-rsa ....中間祕鑰省略..... [email protected] Fingerprint: md5 90:6e:5e:ef:d0:1b:02:cb:4b:f5:18:3e:8b:6d:57:26 |
在這個時候我們就可以開啟服務,遠端登入可以通過rsa加密演算法,但是為了更好的支援遠端登入可以開啟更多登入;
這個時候開啟服務的話是可以用的,但是會報錯,所另外兩個演算法的檔案沒有找見,但是遠端登入是可以成功的
[[email protected] xinetd.d]# dropbear -p 20000 -E -F [4518] Jun 30 10:47:36 Failed loading /etc/dropbear/dropbear_dss_host_key [4518] Jun 30 10:47:36 Failed loading /etc/dropbear/dropbear_ecdsa_host_key [4518] Jun 30 10:47:36 Not backgrounding |
當然為了安全我們只是用一個遠端登入的方式也是可以的
所以下面的步驟是可以省略的
[[email protected] xinetd.d]# dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key Generating key, this may take a while... Public key portion is: ssh-dss AAAAB3NzaC1kc3MAAACBANr0SlgJdM6AxlJ/ Fingerprint: md5 30:69:94:3d:e6:14:2d:86:9e:9b:ec:a0:93:36:f2:37 [[email protected] xinetd.d]# dropbearkey -t ecdsa -s 521 -f /etc/dropbear/dropbear_ecdsa_host_key |
不管是開啟一個加密演算法,還是3個都開啟,我們這個時候可以開啟dropbear服務了,當然建議暫時關閉防火牆
[[email protected] xinetd.d]# dropbear -p 20000 -E -F [4523] Jun 30 10:49:45 Not backgrounding |
在本地客戶端試圖連線遠端服務
[[email protected] ssh]# ssh -p 20000 172.16.1.1 The authenticity of host '[172.16.1.1]:20000 ([172.16.1.1]:20000)' can't be established. RSA key fingerprint is 90:6e:5e:ef:d0:1b:02:cb:4b:f5:18:3e:8b:6d:57:26. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[172.16.1.1]:20000' (RSA) to the list of known hosts. [email protected]'s password: |
或者通過dbclint連線
[[email protected] ssh]# dbclient -p 20000 172.16.1.1 Host '172.16.1.1' is not in the trusted hosts file. (ssh-rsa fingerprint md5 90:6e:5e:ef:d0:1b:02:cb:4b:f5:18:3e:8b:6d:57:26) Do you want to continue connecting? (y/n) y [email protected]'s password: |
我們可以檢視ip,是否已經遠端登入成功,我這裡本地為6,遠端為7,能使用ip addr就說明ok了
[[email protected] ~]# ip addr show eno16777736 | grep 'inet\b' inet 172.16.1.1/16 brd 172.16.255.255 scope global eno16777736 |
我們在測試的 伺服器端,因為我們開啟了測試的前臺顯示,和輸出為錯誤輸出到終端,我們可以看到連線狀況
[[email protected] xinetd.d]# dropbear -p 20000 -E -F [4523] Jun 30 10:49:45 Not backgrounding [4550] Jun 30 10:50:26 Child connection from 172.16.1.2:59012 [4550] Jun 30 10:51:00 Password auth succeeded for 'root' from 172.16.1.2:59012 |
當本地客戶端斷開連線的時候就會顯示
[4583] Jun 30 11:07:04 Exit (root): Disconnect received |
編譯安裝dropbear
v2、ftp://172.16.0.1/pub/Sources/sources/dropbear/dropbear-2013.58.tar.bz2 (馬哥內網伺服器)
v3、tar xf dropbear-2013.58.tar.bz2,
v4、less INSTALL 或者cat INSTALL 檢視安裝幫助資訊
v5、./configure
v6、make PROGRAMS='dropbear scp dropbearkey dbclient' 這裡注意一下,如果有ssh有scp,這裡的的scp就別安裝了
v7、make PROGRAMS='dropbear scp dropbearkey dbclient' install
v8、ls /usr/local/sbin/ /usr/local/bin/
v9、/usr/local/sbin/dropbear -h
v10、mkdir /etc/dropbear
v11、dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048
v12、dropbearkey -t dss -f /etc/dropbear/dropbear_dsa_host_key
v13、dropbear -p :2222 -F -E ; ss –tnl #前臺執行,資訊終端錯誤輸出(測試用,正常啟用的話,不用加-F和-E)
v14、ssh -p 2222 [email protected]
v15、dropbear -p :2222 #後臺執行 (這是後臺執行,測試成功就要執行這個,或者直接執行,不測試)
v16、dbclient -p 2222 [email protected]
轉載於:https://blog.51cto.com/941012521/1796025