首頁 運維 linux運維 linux ssh使用的方法有哪些

linux ssh使用的方法有哪些

May 22, 2023 pm 11:58 PM
linux ssh

openssh軟體包包含以下命令:

sshd ―― ssh服務端程式
sftp-server ―― sftp服務端程式(類似ftp但提供資料加密的一種協定)
scp ―― 非互動式sftp-server的客戶端,用來上傳/下載檔案
sftp ―― 互動式sftp-server客戶端,用法和ftp指令一樣。
slogin ―― ssh的別名
ssh ―― ssh協定的客戶端程序,用來登錄遠端系統或遠端執行命令
ssh-add ――    ssh代理相關程序,用來向ssh代理程式新增dsa key
ssh-agent ――    ssh代理程式
ssh-keyscan ―― ssh public key 產生器

ssh最常用的使用方式是取代telnet進行遠端登陸。有別於telnet的密碼登陸,ssh同時支援publickey、keybord interactive、gssapi等多種登錄方式,不像telnet只有輸入系統密碼一種途徑。目前最常用的登陸方式還是傳統的password方式和publickey方式登陸。以下以redhat as4為例,舉例說明這兩種登陸方式的用法。

[root@mail ~]# ssh 172.18.6.227
the authenticity of host '172.18.6.227 (172.18.6.227)' can't be established.
rsa key finger print#rsa key finger 4380is 4380is 4380is 4380is 4380is 4380is 4380is 4380is 4380is 4380is。 :f2:e1:9b:b6:6e:c0:e2:dd:57:8f:ed:89:b3:81.
are you sure you want to continue connecting (yes/no)? yes
# warning: permanently added '172.18.6.227′ (rsa) to the list of known hosts.
root@172.18.6.227's password:
last login: thu jul 12 18:47:47 2007 from 12007183.
[root@qmail ~]

#第一次登陸後,ssh就會把登陸的ssh指紋存放在用戶home目錄的.ssh目錄的know_hosts檔案中,如果遠端系統重裝過系統,ssh指紋已經改變,你需要把.ssh 目錄下的know_hosts中的相應指紋刪除,再登陸回答yes,方可登陸。請注意.ssh目錄是開頭是”.」的隱藏目錄,需要ls –a參數才能看到。而且這個目錄的權限必須是700,且使用者的home目錄也不能給其他使用者寫權限,否則ssh伺服器會拒絕登陸。如果發生不能登陸的問題,請察看伺服器上的日誌檔案/var/log/secure。通常很快就能找到不能登陸的原因。

ssh遠端執行指令:

[root@mail ~]# ssh 172.18.6.227 ls -l /
root@172.18.6.227's password:
total 1244
drwxr-xr-x    2 root root    4096 jun 26 04:02 bin
drwxr-x      4 root 2 root root    4096 jan 25 11:26 command
drwxr-xr-x   15 root root    4096 jun 12 20:09 data
drwxr-x dev
drwxr- xr-x   87 root root   12288 jul 11​​ 04:02 etc
drwxr-xr-x   20 root root    4096 apr 10 10:54 root root    4096 apr 10 10:54 root 3  2004 initrd

輸入正確的密碼後,ssh會連結遠端伺服器的sshd伺服器程序,然後執行遠端伺服器上的

ls –l /命令,並把輸入結果傳到本機伺服器。相當於你先登陸到遠端伺服器,然後實施指令ls –l /,最後再登出伺服器。需要提醒的是,如果你需要登陸伺服器並執行不只一個指令,必須要把指令用單引號或雙引號引起來:


ssh 172.18.6.227 “cd /root && ls “

ssh的遠端實施命令的功能是用來取代原始的r系列命令的,在ssh出現之前系統管理員們不得不用rexec, rsh等不安全的遠端執行命令工具來完成同樣的操作。這個功能在管理大批機器的時候是非常有用的,例如我要重啟10.0.0.0/24網段內所有的伺服器,只要輸入一條指令:

for i in $(seq 1 254) ; do  ssh 10.0.0.${i} reboot ; done

就可以完成重啟所有伺服器的操作,也許你會說,這要雖然不需要再登陸每一台伺服器了,但是還是要每次輸入密碼,多麻煩。別急,下面要講的用ssh public key方式登陸就是要解決問題。

採用public key登入:

openssh的ssh-keygen指令用來產生這樣的私鑰和公鑰。

[root@mail ~]# ssh-keygen -b 1024 -t dsa -c gucuiwen@myserver.com
generating public/private dsa key pair.
#提示正在生成,如果選擇4096長度,可能需要較長時間
enter file in which to save the key (/root/.ssh/id_dsa):
#詢問把公鑰和私鑰放在那裡,回車用默認位置即可
enter passphrase (empty for no passphrase):
#詢問輸入私鑰密語,為了實現自動登陸,應該不要密語,直接回車
enter same passphrase again:
#再次提示輸入密語,再次提示輸入密語,再次提示輸入密語直接回車
your identification has been saved in /root/.ssh/id_dsa.
your public key has been saved in /root/.ssh/id_dsa.pub.
#公鑰和私鑰提示公鑰和私鑰已經存放在/root/.ssh/目錄下
the key fingerprint is:
71:e5:cb:15:d3:8c:05:ed:05:84:85:32:ce:b1: 31:ce gucuiwen@myserver.com
#提示key的指紋

說明:
-b 1024 採用長度為1024位元組的公鑰/私鑰對,最長4096字節,一般1024或2048就可以了,太長的話加密解密需要的時間也長。
-t dsa  採用dsa加密方式的公鑰/私鑰對,除了dsa還有rsa方式,rsa方式最短不能小於768位元組長度。
-c gucuiwen@myserver.com 對這個公鑰/私鑰對的一個註解和說明,一般用所有人的郵件代替。可以省略不寫,更多其他參數請man ssh-keygen。

[root@mail ~]# ls -l /root/.ssh
total 16
-rw——-  1 root root 668 jul 12 20:07 id_dsa
-rw- r–r–  1 root root 611 jul 12 20:07 id_dsa.pub
-rw-r–r–  1 root root 222 jul 12 19:37 known_hosts

所產生的公鑰檔案所產生的公鑰檔案在使用者home目錄的.ssh目錄下,其中id_dsa.pub是公鑰,把產生的公鑰上傳到需要登陸的伺服器的對應使用者目錄的home目錄的.ssh目錄下,再一次強調使用者自己的目錄( home目錄)必須不能有其他人可寫的權限,.ssh目錄的權限必須是700,即除了使用者自己,其他人沒有任何讀寫察看該目錄的權限,否則ssh伺服器會拒絕登陸。 ssh預設的公鑰檔案是使用者home目錄下的.ssh目錄下的authorized_keys文件,因此需要把產生的公鑰以這個檔案名稱放到伺服器的/root/.ssh/目錄下,這個檔案中可以存放多個客戶端的公鑰文件,就好比一個大門上可以上很多鎖,可以有不同的鑰匙來嘗試開鎖,只要有一個鎖被打開了,門就可以打開了。放到伺服器上應該是這樣子的:

私鑰必須是600權限,否則ssh伺服器會拒絕使用者登陸。

大致上就是這個樣子了。現把/etc/ssh/ssh_config 和 /etc/ssh/sshd_config的設定說下。

/etc/ssh/ssh_config:


host *
選項「host」只對能夠匹配後面字串的電腦有效。 “*”表示所有的計算機。

forwardagent no
「forwardagent」設定連線是否經過驗證代理程式(如果存在)轉送至遠端電腦。

forwardx11 no
「forwardx11」設定x11連線是否會自動重定向到安全的通道和顯示集(display set)。

rhostsauthentication no
「rhostsauthentication」設定是否使用基於rhosts的安全驗證。

rhostsrsaauthentication no
“rhostsrsaauthentication”設定是否使用使用rsa演算法的基於rhosts的安全驗證。

rsaauthentication yes
「rsaauthentication」設定是否使用rsa演算法進行安全驗證。

passwordauthentication yes
「passwordauthentication」設定是否使用口令驗證。

fallbacktorsh no
「fallbacktorsh」設定如果用ssh連線出現錯誤是否自動使用rsh。

usersh no
「usersh」設定是否在這台電腦上使用「rlogin/rsh」。

batchmode no
“batchmode”如果設為“yes”,passphrase/password(互動式輸入口令)的提示將被禁止。當不能互動式輸入口令的時候,這個選項對腳本檔案和批次任務十分有用。

checkhostip yes
「checkhostip」設定ssh是否查看連接到伺服器的主機的ip位址以防止dns欺騙。建議設定為“yes”。

stricthostkeychecking no
“stricthostkeychecking”如果設定成“yes”,ssh就不會自動把電腦的密匙加入“$home/.ssh/known_hosts”文件,並且一旦電腦的密匙發生了變化,就拒絕連線。

identityfile ~/.ssh/identity
「identityfile」設定從哪個檔案讀取使用者的rsa安全驗證識別碼。

port 22
「port」設定連接到遠端主機的連接埠。

cipher blowfish
「cipher」設定加密用的密碼。

escapechar ~
“escapechar”設定escape字元。

/etc/ssh/sshd_config:


port 22
「port」設定sshd監聽的連接埠號碼。

listenaddress 192.168.1.1
「listenaddress」設定sshd伺服器綁定的ip位址。

hostkey /etc/ssh/ssh_host_key

「hostkey」設定包含電腦私人密匙的檔案。

serverkeybits 1024
「serverkeybits」定義伺服器密匙的位元數。

logingracetime 600
「logingracetime」設定如果使用者無法成功登錄,則在切斷連線之前伺服器需要等待的時間(以秒為單位)。

keyregenerationinterval 3600
「keyregenerationinterval」設定在多少秒之後會自動重新產生伺服器的密匙(如果使用密匙)。重新產生密匙是為了防止用盜用的密匙解密被截獲的資訊。

permitrootlogin no
「permitrootlogin」設定root能不能用ssh登入。這個選項一定不要設成「yes」。

ignorerhosts yes
「ignorerhosts」設定驗證的時候是否使用「rhosts」和「shosts」檔案。

ignoreuserknownhosts yes
「ignoreuserknownhosts」設定ssh daemon是否在進行rhostsrsaauthentication安全驗證的時候忽略使用者的「$home/.ssh/known_hosts」

strictmodes yestrices##「stricesmodes 」設定ssh在接收登入請求之前是否檢查用戶家目錄和rhosts檔案的權限和所有權。這通常是必要的,因為新手經常會把自己的目錄和檔案設為任何人都有寫入權限。

x11forwarding no

「x11forwarding」設定是否允許x11轉送。

printmotd yes

「printmotd」設定sshd是否在使用者登入的時候顯示「/etc/motd」中的資訊。

syslogfacility auth

「syslogfacility」設定在記錄來自sshd的訊息的時候,是否給予「facility code」。

loglevel info

「loglevel」設定記錄sshd日誌訊息的層次。 info是一個好的選擇。查看sshd的man幫助頁,已獲得更多的資訊。

rhostsauthentication no

「rhostsauthentication」設定只使用rhosts或「/etc/hosts.equiv」進行安全驗證是否已經足夠了。

rhostsrsaauthentication no

「rhostsrsa」設定是否允許以rhosts或「/etc/hosts.equiv」加上rsa進行安全驗證。

rsaauthentication yes

「rsaauthentication」設定是否允許只有rsa安全驗證。

passwordauthentication yes

「passwordauthentication」設定是否允許口令驗證。

permitemptypasswords no

「permitemptypasswords」設定是否允許以口令為空的帳號登入。

allowusers admin

「allowusers」的後面可以跟著任意的數量的用戶名的匹配串(patterns)或user@host這樣的匹配串,這些字串用空格隔開。主機名稱可以是dns名稱或ip位址。

將ssh2相容格式的公鑰轉換成為openssh相容格式

ssh-keygen -i -f identity.pub >> /root/.ssh/ authorized_keys2

以上是linux ssh使用的方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1249
24
Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

vscode上一步下一步快捷鍵 vscode上一步下一步快捷鍵 Apr 15, 2025 pm 10:51 PM

VS Code 一步/下一步快捷鍵的使用方法:一步(向後):Windows/Linux:Ctrl ←;macOS:Cmd ←下一步(向前):Windows/Linux:Ctrl →;macOS:Cmd →

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

sublime寫好代碼後如何運行 sublime寫好代碼後如何運行 Apr 16, 2025 am 08:51 AM

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

laravel安裝代碼 laravel安裝代碼 Apr 18, 2025 pm 12:30 PM

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)

git軟件安裝 git軟件安裝 Apr 17, 2025 am 11:57 AM

安裝 Git 軟件包括以下步驟:下載安裝包運行安裝包驗證安裝配置 Git安裝 Git Bash(僅限 Windows)

See all articles