SSH 的詳細使用方法如下:
ssh [-l login_name] [hostname | user@hostname] [command] ssh [-afgknqtvxCPX246] [-c blowfish | 3des] [-e escape_char] [-i identity_file] [-l login_name] [-o option] [-p port] [-L port:host:hostport] [-R port:host:hostport] [hostname | user@hostname] [command]
sshd
為執行 ssh 的 daemon,在讀者使用 ssh 之前必須去激活 sshd,在此建議把它加在 /etc/init/rc.local 中,在每次開機時激活。
在執行 sshd 之前可以指定它的 port,例如:sshd –p 999
若有安裝 SSL,可以指定 SSL 的 port 443,例如:sshd –p 443
這樣就可以經過 SSL 及 SSH 雙重的保護,但必須去指明使用的 port
ssh –l user –p 443 mouse.oit.edu.tw 才行,若不指明則仍然使用預設的port 22
ssh
選項:
-l login_name
指定登入於遠程機器上的使用者,若沒加這個選項,而直接打 ssh lost 也是可以的,它是以讀者目前的使用者去做登入的動作。 例如: ssh –l shie mouse.oit.edu.tw
-c blowfish|3des
在期間內選擇所加密的密碼型式。預設是3des,3des(作三次的資料加密) 是用三種不同的密碼鍵作三次的加密-解密-加密。 blowfish 是一個快速區塊密碼編制器,它比3des更安全以及更快速。
-v
Verbose 模式。使ssh 去印出關於行程的除錯訊息,這在連接除錯,認 證和設定的問題上有很的幫助。
-V
顯示版本。
-a
關閉認證代理聯機。
-f
要求ssh 在背景執行命令,假如ssh要詢問密碼或通行證,但是使用者 想要它在幕后執行就可以用這個方式,最好還是加上-l user 例如在遠程場所上激活 X11,有點像是 ssh –f host xterm 。
-e character
設定跳脫字符。
-g
允許遠程主機去連接本地指派的 ports。
-i identity_file
選擇所讀取的 RSA 認證識別的檔案。預設是在使用者的家目錄 中的 .ssh/identity 。
-n
重導 stdin 到 /dev/null (實際上是避免讀取 stdin)。必須當 ssh 在幕后執 行時才使用。常見的招數是使用這選項在遠程機器上去執行 X11 的程序 例如,ssh -n shadows.cs.hut.fi emacs &,將在 shadows.cs.hut.fi 上激活 emace,並且 X11 連接將自動地在加密的信道上發送。ssh 程序將把它放 在幕后。(假如ssh需要去詢問密碼時,這將不會動作)
-p port
連接遠程機器上的 port。
-P
使用非特定的 port 去對外聯機。如果讀者的防火牆不淮許從特定的 port去聯機時,就可以使用這個選項。注意這個選項會關掉 RhostsAuthentication 和 RhostsRSAAuthentication。
-q
安靜模式。把所有的警告和訊息抑制,只有嚴重的錯誤才會被顯示。
-t
強制配置 pseudo-tty。這可以在遠程機器上去執行任意的 screen-based 程 式,例如操作 menu services。
-C
要求壓縮所有資料(包含 stdin, stdout,stderr 和 X11 和 TCP/IP 連接) 壓縮演算規則與 gzip 相同,但是壓縮的等級不能控制。在調制解調器或 聯機速度很慢的地方,壓縮是個很好的選擇,但如果讀者的網絡速路很 快的話,速度反而會慢下來。
-L listen-port:host:port
指派本地的 port 到達端機器地址上的 port。
-R listen-port:host:port
指派遠程上的 port 到本地地址上的 port。
-2 強制 ssh 去使用協議版本 2。
-4 強制 ssh 去使用 IPv4 地址。
-6 強制 ssh 去使用 IPv6 地址。
scp
使用 scp 在遠程機器上 copy 檔案
例如:
copy 本地的檔案到遠程的機器上
scp /etc/lilo.conf k@net67.ee.oit.edu.tw:/home/k
會將本地的 /etc/lilo.conf 這個檔案 copy 到 net67.ee.oit.edu.tw,使用者 k 的家目錄下。
copy遠程機器上的檔案到本地來
scp k@net67.ee.oit.edu.tw:/etc/lilo.conf /etc
會將 net67.ee.oitdu.tw 中 /etc/lilo.conf 檔案 copy 到本地的 /etc 目錄下。
保持從來源 host 檔案的屬性
scp –p k@net67.ee.tw:/etc/lilo.conf /etc
在此必須注意使用者的權限是否可讀取遠程上的檔案,若想知道更多關於 scp 的使用方法,可去看看 scp 的使用手冊。
ssh-keygen
產生公開鑰 (pulib key) 和私人鑰 (private key),以保障 ssh 聯機的安性, 當 ssh 連 shd 服務器,會交換公開鑰上,系統會檢查 /etc/ssh_know_hosts 內儲存的 key,如果找到客戶端就用這個 key 產生一個隨機產生的session key 傳給服務器,兩端都用這個 key 來繼續完成 ssh 剩下來的階段。
它會產生 identity.pub、identity 兩個檔案,私人鑰存放於identity,公開鑰 存放於 identity.pub 中,接下來使用 scp 將 identity.pub copy 到遠程機器的家目錄下.ssh下的authorized_keys。 .ssh/authorized_keys(這個 authorized_keys 檔案相當於協議的 rhosts 檔案), 之后使用者能夠不用密碼去登入。RSA的認證絕對是比 rhosts 認證更來的安全可靠。
執行:
scp identity.pub k@linux1.ee.oit.edu.tw:.ssh/authorized_keys
若在使用 ssh-keygen 產生鑰匙對時沒有輸入密碼,則如上所示不需輸入密碼即可從 net67.ee.oit.edu.tw 去登入 linux1.ee.oit.edu.tw。在此,這里輸入的密碼可以跟帳號的密碼不同,也可以不輸入密碼。