久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

linux ssh使用的方法有哪些

157次閱讀
沒有評論

共計 5930 個字符,預計需要花費 15 分鐘才能閱讀完成。

本篇內容介紹了“linux ssh 使用的方法有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

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 fingerprint is 43:80: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 172.18.6.130
[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-xr-x  4 root root  4096 mar 29 11:17 boot
drwxr-xr-x  2 root root  4096 jan 25 11:26 command
drwxr-xr-x  15 root root  4096 jun 12 20:09 data
drwxr-xr-x  9 root root  5360 jul  2 13:38 dev
drwxr-xr-x  87 root root  12288 jul 11 04:02 etc
drwxr-xr-x  20 root root  4096 apr 10 10:54 home
drwxr-xr-x  2 root root  4096 aug 13  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 yes
“strictmodes”設置 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 使用的方法有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-15發表,共計5930字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 博罗县| 桐庐县| 崇明县| 厦门市| 兴业县| 饶平县| 白城市| 固安县| 平和县| 通辽市| 亳州市| 洪湖市| 探索| 鄄城县| 安乡县| 卓资县| 青州市| 固原市| 开化县| 紫金县| 聂拉木县| 绩溪县| 苍山县| 沅江市| 云安县| 宜都市| 开江县| 保定市| 沁水县| 宝应县| 克东县| 洪泽县| 铁力市| 陵水| 东乌| 光山县| 湖州市| 罗江县| 昌邑市| 左贡县| 隆安县|