任何一個系統管理員或站長對SSH都不會陌生,這個偉大的技術免去了我們跑去機房管理服務器,或者在遠程連接服務器時時刻擔心內容被竊取的心驚膽戰。本文將為大家介紹25個最佳的SSH命令,如果您還沒用過,那么有必要將它們記錄一下。
OpenSSH是SSH連接工具的免費版本。telnet,rlogin和ftp用戶可能還沒意識到他們在互聯網上傳輸的密碼是未加密的,但SSH是加密的,OpenSSH加密所有通信(包括密碼),有效消除了竊聽,連接劫持和其它攻擊。此外,OpenSSH提供了安全隧道功能和多種身份驗證方法,支持SSH協議的所有版本。
SSH是一個非常偉大的工具,如果你要在互聯網上遠程連接到服務器,那么SSH無疑是最佳的候選。下面是通過網絡投票選出的25個最佳SSH命令,你必須牢記於心。
(注:有些內容較長的命令,在本文中會顯示為截斷的狀態。如果你需要閱讀完整的命令,可以把整行復制到您的記事本當中閱讀。)
1、復制SSH密鑰到目標主機,開啟無密碼SSH登錄
ssh-copy-id user@host如果還沒有密鑰,請使用ssh-keygen命令生成。
2、從某主機的80端口開啟到本地主機2001端口的隧道
ssh -N -L2001:localhost:80 somemachine現在你可以直接在瀏覽器中輸入http://localhost:2001訪問這個網站。
3、將你的麥克風輸出到遠程計算機的揚聲器
dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp這樣來自你麥克風端口的聲音將在SSH目標計算機的揚聲器端口輸出,但遺憾的是,聲音質量很差,你會聽到很多嘶嘶聲。
4、比較遠程和本地文件
ssh user@host cat /path/to/remotefile | diff /path/to/localfile –在比較本地文件和遠程文件是否有差異時這個命令很管用。
5、通過SSH掛載目錄/文件系統
sshfs name@server:/path/to/folder /path/to/mount/point從http://fuse.sourceforge.net/sshfs.html下載sshfs,它允許你跨網絡安全掛載一個目錄。
6、通過中間主機建立SSH連接
ssh -t reachable_host ssh unreachable_hostUnreachable_host表示從本地網絡無法直接訪問的主機,但可以從reachable_host所在網絡訪問,這個命令通過到reachable_host的“隱藏”連接,創建起到unreachable_host的連接。
7、將你的SSH公鑰復制到遠程主機,開啟無密碼登錄 – 簡單的方法
ssh-copy-id username@hostname8、直接連接到只能通過主機B連接的主機A
ssh -t hostA ssh hostB當然,你要能訪問主機A才行。
9、創建到目標主機的持久化連接
ssh -MNf @在后台創建到目標主機的持久化連接,將這個命令和你~/.ssh/config中的配置結合使用:
Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no所有到目標主機的SSH連接都將使用持久化SSH套接字,如果你使用SSH定期同步文件(使用rsync/sftp/cvs/svn),這個命令將非常有用,因為每次打開一個SSH連接時不會創建新的套接字。
10、通過SSH連接屏幕
ssh -t remote_host screen –r直接連接到遠程屏幕會話(節省了無用的父bash進程)。
11、端口檢測(敲門)
knock 3000 4000 5000 && ssh -p user@host && knock 5000 4000 3000在一個端口上敲一下打開某個服務的端口(如SSH),再敲一下關閉該端口,需要先安裝knockd,下面是一個配置文件示例。
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 3000,4000,5000
seq_timeout = 5
command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 5000,4000,3000
seq_timeout = 5
command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn12、刪除文本文件中的一行內容,有用的修復
ssh-keygen -R 在這種情況下,最好使用專業的工具。
13、通過SSH運行復雜的遠程shell命令
ssh host -l user $(
ssh host -l user “`cat cmd.txt`”