分享下25個(gè)必須記住的SSH命令
OpenSSH是SSH連接工具的免費(fèi)版本。telnet,rlogin和ftp用戶可能還沒(méi)意識(shí)到他們?cè)诨ヂ?lián)網(wǎng)上傳輸?shù)拿艽a是未加密的,但SSH是加密的,OpenSSH加密所有通信(包括密碼),有效消除了竊聽(tīng),連接劫持和其它攻擊。此外,OpenSSH提供了安全隧道功能和多種身份驗(yàn)證方法,支持SSH協(xié)議的所有版本。
SSH是一個(gè)非常偉大的工具,如果你要在互聯(lián)網(wǎng)上遠(yuǎn)程連接到服務(wù)器,那么SSH無(wú)疑是最佳的候選。下面是通過(guò)網(wǎng)絡(luò)投票選出的25個(gè)最佳SSH命令,你必須牢記于心。
(注:有些內(nèi)容較長(zhǎng)的命令,在本文中會(huì)顯示為截?cái)嗟臓顟B(tài)。如果你需要閱讀完整的命令,可以把整行復(fù)制到您的記事本當(dāng)中閱讀。)
1、復(fù)制SSH密鑰到目標(biāo)主機(jī),開(kāi)啟無(wú)密碼SSH登錄
ssh-copy-iduser@host如果還沒(méi)有密鑰,請(qǐng)使用ssh-keygen命令生成。
2、從某主機(jī)的80端口開(kāi)啟到本地主機(jī)2001端口的隧道
ssh-N-L2001:localhost:80somemachine現(xiàn)在你可以直接在瀏覽器中輸入http://localhost:2001訪問(wèn)這個(gè)網(wǎng)站。
3、將你的麥克風(fēng)輸出到遠(yuǎn)程計(jì)算機(jī)的揚(yáng)聲器
ddif=/dev/dsp|ssh-carcfour-Cusername@hostddof=/dev/dsp這樣來(lái)自你麥克風(fēng)端口的聲音將在SSH目標(biāo)計(jì)算機(jī)的揚(yáng)聲器端口輸出,但遺憾的是,聲音質(zhì)量很差,你會(huì)聽(tīng)到很多嘶嘶聲。
4、比較遠(yuǎn)程和本地文件
sshuser@hostcat/path/to/remotefile|diff/path/to/localfile–在比較本地文件和遠(yuǎn)程文件是否有差異時(shí)這個(gè)命令很管用。
5、通過(guò)SSH掛載目錄/文件系統(tǒng)
sshfsname@server:/path/to/folder/path/to/mount/point從http://fuse.sourceforge.net/sshfs.html下載sshfs,它允許你跨網(wǎng)絡(luò)安全掛載一個(gè)目錄。
6、通過(guò)中間主機(jī)建立SSH連接
ssh-treachable_hostsshunreachable_hostUnreachable_host表示從本地網(wǎng)絡(luò)無(wú)法直接訪問(wèn)的主機(jī),但可以從reachable_host所在網(wǎng)絡(luò)訪問(wèn),這個(gè)命令通過(guò)到reachable_host的“隱藏”連接,創(chuàng)建起到unreachable_host的連接。
7、將你的SSH公鑰復(fù)制到遠(yuǎn)程主機(jī),開(kāi)啟無(wú)密碼登錄–簡(jiǎn)單的方法
ssh-copy-idusername@hostname8、直接連接到只能通過(guò)主機(jī)B連接的主機(jī)A
ssh-thostAsshhostB當(dāng)然,你要能訪問(wèn)主機(jī)A才行。
9、創(chuàng)建到目標(biāo)主機(jī)的持久化連接
ssh-MNf<user>@<host>在后臺(tái)創(chuàng)建到目標(biāo)主機(jī)的持久化連接,將這個(gè)命令和你~/.ssh/config中的配置結(jié)合使用:
Hosthost ControlPath~/.ssh/master-%r@%h:%p ControlMasterno所有到目標(biāo)主機(jī)的SSH連接都將使用持久化SSH套接字,如果你使用SSH定期同步文件(使用rsync/sftp/cvs/svn),這個(gè)命令將非常有用,因?yàn)槊看未蜷_(kāi)一個(gè)SSH連接時(shí)不會(huì)創(chuàng)建新的套接字。
10、通過(guò)SSH連接屏幕
ssh-tremote_hostscreen–r直接連接到遠(yuǎn)程屏幕會(huì)話(節(jié)省了無(wú)用的父bash進(jìn)程)。
11、端口檢測(cè)(敲門)
knock<host>300040005000&&ssh-p<port>user@host&&knock<host>500040003000在一個(gè)端口上敲一下打開(kāi)某個(gè)服務(wù)的端口(如SSH),再敲一下關(guān)閉該端口,需要先安裝knockd,下面是一個(gè)配置文件示例。
[options] logfile=/var/log/knockd.log [openSSH] sequence=3000,4000,5000 seq_timeout=5 command=/sbin/iptables-AINPUT-ieth0-s%IP%-ptcp–dport22-jACCEPT tcpflags=syn [closeSSH] sequence=5000,4000,3000 seq_timeout=5 command=/sbin/iptables-DINPUT-ieth0-s%IP%-ptcp–dport22-jACCEPT tcpflags=syn12、刪除文本文件中的一行內(nèi)容,有用的修復(fù)
ssh-keygen-R<the_offending_host>在這種情況下,最好使用專業(yè)的工具。
13、通過(guò)SSH運(yùn)行復(fù)雜的遠(yuǎn)程shell命令
sshhost-luser$(<cmd.txt)更具移植性的版本:
sshhost-luser“`catcmd.txt`”14、通過(guò)SSH將MySQL數(shù)據(jù)庫(kù)復(fù)制到新服務(wù)器
mysqldump–add-drop-table–extended-insert–force–log-error=error.log-uUSER-pPASSOLD_DB_NAME|ssh-Cuser@newhost“mysql-uUSER-pPASSNEW_DB_NAME”通過(guò)壓縮的SSH隧道Dump一個(gè)MySQL數(shù)據(jù)庫(kù),將其作為輸入傳遞給mysql命令,我認(rèn)為這是遷移數(shù)據(jù)庫(kù)到新服務(wù)器最快最好的方法。
15、刪除文本文件中的一行,修復(fù)“SSH主機(jī)密鑰更改”的警告
sed-i8d~/.ssh/known_hosts16、從一臺(tái)沒(méi)有SSH-COPY-ID命令的主機(jī)將你的SSH公鑰復(fù)制到服務(wù)器
cat~/.ssh/id_rsa.pub|sshuser@machine“mkdir~/.ssh;cat>>~/.ssh/authorized_keys”如果你使用MacOSX或其它沒(méi)有ssh-copy-id命令的*nix變種,這個(gè)命令可以將你的公鑰復(fù)制到遠(yuǎn)程主機(jī),因此你照樣可以實(shí)現(xiàn)無(wú)密碼SSH登錄。
17、實(shí)時(shí)SSH網(wǎng)絡(luò)吞吐量測(cè)試
yes|pv|ssh$host“cat>/dev/null”通過(guò)SSH連接到主機(jī),顯示實(shí)時(shí)的傳輸速度,將所有傳輸數(shù)據(jù)指向/dev/null,需要先安裝pv。
如果是Debian:
apt-getinstallpv如果是Fedora:
yuminstallpv(可能需要啟用額外的軟件倉(cāng)庫(kù))。
18、如果建立一個(gè)可以重新連接的遠(yuǎn)程GNUscreen
ssh-tuser@some.domain.com/usr/bin/screen–xRR人們總是喜歡在一個(gè)文本終端中打開(kāi)許多shell,如果會(huì)話突然中斷,或你按下了“Ctrl-ad”,遠(yuǎn)程主機(jī)上的shell不會(huì)受到絲毫影響,你可以重新連接,其它有用的screen命令有“Ctrl-ac”(打開(kāi)新的shell)和“Ctrl-aa”(在shell之間來(lái)回切換),請(qǐng)?jiān)L問(wèn)http://aperiodic.net/screen/quick_reference閱讀更多關(guān)于screen命令的快速參考。
19、繼續(xù)SCP大文件
rsync–partial–progress–rsh=ssh$file_source$user@$host:$destination_file它可以恢復(fù)失敗的rsync命令,當(dāng)你通過(guò)VPN傳輸大文件,如備份的數(shù)據(jù)庫(kù)時(shí)這個(gè)命令非常有用,需要在兩邊的主機(jī)上安裝rsync。
rsync–partial–progress–rsh=ssh$file_source$user@$host:$destination_filelocal->remote或
rsync–partial–progress–rsh=ssh$user@$host:$remote_file$destination_fileremote->local20、通過(guò)SSHW/WIRESHARK分析流量
sshroot@server.com‘tshark-f“port!22″-w-'|wireshark-k-i–使用tshark捕捉遠(yuǎn)程主機(jī)上的網(wǎng)絡(luò)通信,通過(guò)SSH連接發(fā)送原始pcap數(shù)據(jù),并在wireshark中顯示,按下Ctrl+C將停止捕捉,但也會(huì)關(guān)閉wireshark窗口,可以傳遞一個(gè)“-c#”參數(shù)給tshark,讓它只捕捉“#”指定的數(shù)據(jù)包類型,或通過(guò)命名管道重定向數(shù)據(jù),而不是直接通過(guò)SSH傳輸給wireshark,我建議你過(guò)濾數(shù)據(jù)包,以節(jié)約帶寬,tshark可以使用tcpdump替代:
sshroot@example.comtcpdump-w–‘port!22′|wireshark-k-i–21、保持SSH會(huì)話永久打開(kāi)
autossh-M50000-tserver.example.com‘screen-raAdmysession’打開(kāi)一個(gè)SSH會(huì)話后,讓其保持永久打開(kāi),對(duì)于使用筆記本電腦的用戶,如果需要在Wi-Fi熱點(diǎn)之間切換,可以保證切換后不會(huì)丟失連接。
22、更穩(wěn)定,更快,更強(qiáng)的SSH客戶端
ssh-4-C-cblowfish-cbc強(qiáng)制使用IPv4,壓縮數(shù)據(jù)流,使用Blowfish加密。
23、使用cstream控制帶寬
tar-cj/backup|cstream-t777k|sshhost‘tar-xj-C/backup’使用bzip壓縮文件夾,然后以777kbit/s速率向遠(yuǎn)程主機(jī)傳輸。Cstream還有更多的功能,請(qǐng)?jiān)L問(wèn)http://www.cons.org/cracauer/cstream.html#usage了解詳情,例如:
echow00t,i’m733+|cstream-b1-t224、一步將SSH公鑰傳輸?shù)搅硪慌_(tái)機(jī)器
ssh-keygen;ssh-copy-iduser@host;sshuser@host這個(gè)命令組合允許你無(wú)密碼SSH登錄,注意,如果在本地機(jī)器的~/.ssh目錄下已經(jīng)有一個(gè)SSH密鑰對(duì),ssh-keygen命令生成的新密鑰可能會(huì)覆蓋它們,ssh-copy-id將密鑰復(fù)制到遠(yuǎn)程主機(jī),并追加到遠(yuǎn)程賬號(hào)的~/.ssh/authorized_keys文件中,使用SSH連接時(shí),如果你沒(méi)有使用密鑰口令,調(diào)用sshuser@host后不久就會(huì)顯示遠(yuǎn)程shell。
25、將標(biāo)準(zhǔn)輸入(stdin)復(fù)制到你的X11緩沖區(qū)
sshuser@hostcat/path/to/some/file|xclip你是否使用scp將文件復(fù)制到工作用電腦上,以便復(fù)制其內(nèi)容到電子郵件中?xclip可以幫到你,它可以將標(biāo)準(zhǔn)輸入復(fù)制到X11緩沖區(qū),你需要做的就是點(diǎn)擊鼠標(biāo)中鍵粘貼緩沖區(qū)中的內(nèi)容。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信