這篇文章的中心是介紹在ssh軟件包中非常有用的程序如:sftp,scp,ssh-agent,和ssh-add。
在下文中我們假設sshd2守護進程很好地被設置并且運行良好。
Sftp和scp總覽
讓我們把注意力集中到sftp和scp上。
第一個(sftp安全文件傳輸)是一個類ftp的客戶端程序,它能夠被用來在網絡中傳輸文件。
它并不使用FTP守護進程(ftpd或wu-ftpd)來進行連接,而是有意義地增強系統的安全性。
實際上,通過監視一些系統中的log文件,我們可以注意到最近一個月中有80%的攻擊是針對于ftpd守護進程的。
sftp避免了這些攻擊從而可以停止在wu-ftpd上潛在的危險。
第二個(scp安全性復制)被用來在網絡上安全地復制文件。它替代了不安全的rcp命令。
Sftp和scp從連接到sshd服務器上后,不需要任何專用的守護進程。為了使用sftp和scp你必須插入以下兩行在配置文件/etc/ssh2/sshd2_config中:
subsystem-sftp sftp-server
在這些修改之后,你必須重新啟動sshd.
然后你就可以使用sftp和scp連接到運行sshd的主機上了。
Sftp
Sftp使用在數據連接上使用ssh2,所以文件的傳輸是盡可能地安全。
使用sftp代替ftp兩個主要的的原因是:
1、Password從不用明文傳輸,防止sniffer(嗅探器)的攻擊。
2、數據在傳輸時被加密,使用刺探和修改連接非常困難。
而使用sftp2是非常簡單的。讓我們假設你使用了你的帳戶:myname通過sftp連按上了主機host1。
可以使用命令:
sftp myname@host1
一些選項能夠在命令行中被指定(詳細情況請查看sftp manul)
當sftp2準備好了來接受連接時,它將顯示一個狀態提示符 sftp>。在sftp手冊中有完整的用戶可以使用的命令列表;其中有:
·quit:
從這個應用程序中退出。
·cd directory:
改變當前的遠程工作目錄。
·lcd directory:
改變當前的本地工作目錄。
·ls [ -R ] [ -l ] [ file ... ]:
列出在遠地服務器上的文件名。如果是目錄,則列出目錄的內容。當命令行中指定了-R,則遞歸地顯示目錄樹。
(默認情況下,子目錄并不被訪問)。當命令行中指定了-l,文件與目錄的權限,屬主,大小和修改時間被列出。
當沒有參數被指定,則.(當前目錄)的內容被列出。普通情況下選項-R和-l是互相不兼容的。
·lls [ -R ] [ -l ] [ file ... ]:
與ls一樣,但是是對于本地文件操作。
·get [file ...]:
從遠程端傳送指定的文件到本地端。目錄內容被遞歸地復制。
·put [ file ... ]:
從本地端傳送指定的文件到遠地端。目錄內容被遞歸地復制。
·mkdir dir (rmdir dir):
嘗試建立或刪除參數中指定的目錄。
通配符對于ls,lls,get和put是支持的。格式在sshregex手冊中有描述。
從sftp使用加密技術以來,一直有一個障礙:連接速度慢(以我的經驗有2-3倍),但是這一點對于非常好的安全性來講只能放在一邊了。在一個測試中,在我們局域網上的Sniffer可以在一個小時中捉住ftp連接上的4個password.
sftp的使用可以從網絡上傳送文件并且除去這些安全問題。
Scp
Scp2(安全性復制)被用來從網絡上安全地復制文件。它使用ssh2來進行數據傳送:它使用的確認方式和提供的安全性與ssh2一樣。
這可能是一種最簡單的方法從遠地機器上復制文件了。讓我們假設你要使用你的帳戶mmyname,復制在local_dir目錄中的filename
文件到遠地的主機host1上的remote_dir目錄中。使用scp你可以輸入:
scp local_dir/filename myname@host1:remote_dir
在這種方式下文件filename被復制成相同的名字。通配符可以使用(讀一讀sshregex手冊)。命令行:
scp local_dir/* myname@host1:remote_dir
從目錄local_dir復制所有文件到主機host1的目錄remote_dir命令:
scp myname@host1:remote_dir/filename .
復制文件filename從host1的目錄remote_dir到本地目錄。
scp支持許多選項并且允許在兩個遠地系統之間復制文件:
scp myname@host1:remote_dir/filename myname@host2:another_dir
詳情請查閱手冊
顯然,使用scp,你必須知道遠程機器的確切目錄,所以在實際上sftp經常被作為首選使用。
ssh 密鑰管理
ssh軟件包包含兩個非常有用的程序來管理確認密鑰,允許用戶連接到一個遠程系統而無須指定password。這些程序是ssh-agent和ssh-add。
ssh-agent
從ssh-agent我們可以讀到:“ssh-agent2是一個保持確認私有密鑰的程序。ssh-agent2在X對話或login對話的開端被啟動,并且所有的其它窗口或程序以ssh-agent2程序的子程序的形式被啟動。程序在代理從另一個代理繼承一個連接時被啟動,并且,當登錄到其它機器使用 ssh時,這個代理被自動地使用到公共密鑰確認中。”
根據你使用xdm的與否,有兩種不同的使用ssh-agent的方法。
如果使用xdm,你需要編輯 .xsession文件,在$HOME目錄中。有兩種可能的過程:
復制 .xsession到.xsession-stuff并且修改.xession:
exec ssh-agent ./.xsession-stuff
或者你需要編輯.xsession文件并且搜索每一行表達式包含"exec program"。修改成exec ssh-agent program。
然后退出并重新啟動。ssh-agent將把X-session作為它的一個子進程啟動,并且等待ssh密鑰插入到它的數據庫中。
如果xdm不被使用,那么ssh-agent的使用是非常簡單的,因為你可以啟動你的X使用以下命令:
ssh-agent startx
這樣就可以運行ssh-agent了。
ssh-add
每當ssh-agent正常運行了,你可以在它的數據庫中使用命令ssh-add加入新的身份信息。你只可以加入某些個祖先ssh-agent的子進程的身份信息,否則將會出錯:
Failed to connect to authentication agent - agent not running?
使用ssh-add是非常簡單的:從命令行輸入:
ssh-add
ssh-add掃描文件$home/.ssh2/身份信息,它包含了私人的密鑰。如果這個文件不存在,則設定一般情況下的私人信息文件(如:$HOME/.ssh2/id_dsa_1024_a)。
如果一個公共密鑰文件需要一個暗號,ssh-add會詢問這個暗號:
Adding identity: /home/matt/.ssh2/id_dsa_1024_a.pub
Need passphrase for /home/matt/.ssh2/id_dsa_1024_a (..)
Enter passphrase:
你可以從agent那兒獲得所有的帳戶身份通過命令ssh-add -l:
Listing identities.
The authorization agent has one key:
id_dsa_1024_a: 1024-bit dsa, (...)
結論和一些有用的鏈接
許多telnet,rlogin,ftp的用戶可以沒有認識到它們的password在網絡傳送過程中是沒有被加密的,但是,使用一些安全的協議可以保證在不安全的網絡上的傳輸安全。SSH,對于所有的傳輸都加了密,有效地防止了偷聽,搶劫連接和其它網絡攻擊。
這些文章只是介紹ssh軟件包的,可以在ssh,sshd和sftp的手冊中找到更多有用的東西。你可以從http://www.ssh.com/products/ssh/得到ssh軟件包(LinuxByte注:本站下載SSH2),你可以從http://www.ssh.com/tech/中得到更多的SSH的技術內容和加密技術。你也可以從http://www.openssh.com/得到openssh的SSH協議訴可執行文件。輕便版本在http://www.openssh.com/portable.html.你也可以從http://www.openssh.com/faq.html得到SSH的FAQ。
本文來自:http://doc.linuxpk.com/4213.html
在下文中我們假設sshd2守護進程很好地被設置并且運行良好。
Sftp和scp總覽
讓我們把注意力集中到sftp和scp上。
第一個(sftp安全文件傳輸)是一個類ftp的客戶端程序,它能夠被用來在網絡中傳輸文件。
它并不使用FTP守護進程(ftpd或wu-ftpd)來進行連接,而是有意義地增強系統的安全性。
實際上,通過監視一些系統中的log文件,我們可以注意到最近一個月中有80%的攻擊是針對于ftpd守護進程的。
sftp避免了這些攻擊從而可以停止在wu-ftpd上潛在的危險。
第二個(scp安全性復制)被用來在網絡上安全地復制文件。它替代了不安全的rcp命令。
Sftp和scp從連接到sshd服務器上后,不需要任何專用的守護進程。為了使用sftp和scp你必須插入以下兩行在配置文件/etc/ssh2/sshd2_config中:
subsystem-sftp sftp-server
在這些修改之后,你必須重新啟動sshd.
然后你就可以使用sftp和scp連接到運行sshd的主機上了。
Sftp
Sftp使用在數據連接上使用ssh2,所以文件的傳輸是盡可能地安全。
使用sftp代替ftp兩個主要的的原因是:
1、Password從不用明文傳輸,防止sniffer(嗅探器)的攻擊。
2、數據在傳輸時被加密,使用刺探和修改連接非常困難。
而使用sftp2是非常簡單的。讓我們假設你使用了你的帳戶:myname通過sftp連按上了主機host1。
可以使用命令:
sftp myname@host1
一些選項能夠在命令行中被指定(詳細情況請查看sftp manul)
當sftp2準備好了來接受連接時,它將顯示一個狀態提示符 sftp>。在sftp手冊中有完整的用戶可以使用的命令列表;其中有:
·quit:
從這個應用程序中退出。
·cd directory:
改變當前的遠程工作目錄。
·lcd directory:
改變當前的本地工作目錄。
·ls [ -R ] [ -l ] [ file ... ]:
列出在遠地服務器上的文件名。如果是目錄,則列出目錄的內容。當命令行中指定了-R,則遞歸地顯示目錄樹。
(默認情況下,子目錄并不被訪問)。當命令行中指定了-l,文件與目錄的權限,屬主,大小和修改時間被列出。
當沒有參數被指定,則.(當前目錄)的內容被列出。普通情況下選項-R和-l是互相不兼容的。
·lls [ -R ] [ -l ] [ file ... ]:
與ls一樣,但是是對于本地文件操作。
·get [file ...]:
從遠程端傳送指定的文件到本地端。目錄內容被遞歸地復制。
·put [ file ... ]:
從本地端傳送指定的文件到遠地端。目錄內容被遞歸地復制。
·mkdir dir (rmdir dir):
嘗試建立或刪除參數中指定的目錄。
通配符對于ls,lls,get和put是支持的。格式在sshregex手冊中有描述。
從sftp使用加密技術以來,一直有一個障礙:連接速度慢(以我的經驗有2-3倍),但是這一點對于非常好的安全性來講只能放在一邊了。在一個測試中,在我們局域網上的Sniffer可以在一個小時中捉住ftp連接上的4個password.
sftp的使用可以從網絡上傳送文件并且除去這些安全問題。
Scp
Scp2(安全性復制)被用來從網絡上安全地復制文件。它使用ssh2來進行數據傳送:它使用的確認方式和提供的安全性與ssh2一樣。
這可能是一種最簡單的方法從遠地機器上復制文件了。讓我們假設你要使用你的帳戶mmyname,復制在local_dir目錄中的filename
文件到遠地的主機host1上的remote_dir目錄中。使用scp你可以輸入:
scp local_dir/filename myname@host1:remote_dir
在這種方式下文件filename被復制成相同的名字。通配符可以使用(讀一讀sshregex手冊)。命令行:
scp local_dir/* myname@host1:remote_dir
從目錄local_dir復制所有文件到主機host1的目錄remote_dir命令:
scp myname@host1:remote_dir/filename .
復制文件filename從host1的目錄remote_dir到本地目錄。
scp支持許多選項并且允許在兩個遠地系統之間復制文件:
scp myname@host1:remote_dir/filename myname@host2:another_dir
詳情請查閱手冊
顯然,使用scp,你必須知道遠程機器的確切目錄,所以在實際上sftp經常被作為首選使用。
ssh 密鑰管理
ssh軟件包包含兩個非常有用的程序來管理確認密鑰,允許用戶連接到一個遠程系統而無須指定password。這些程序是ssh-agent和ssh-add。
ssh-agent
從ssh-agent我們可以讀到:“ssh-agent2是一個保持確認私有密鑰的程序。ssh-agent2在X對話或login對話的開端被啟動,并且所有的其它窗口或程序以ssh-agent2程序的子程序的形式被啟動。程序在代理從另一個代理繼承一個連接時被啟動,并且,當登錄到其它機器使用 ssh時,這個代理被自動地使用到公共密鑰確認中。”
根據你使用xdm的與否,有兩種不同的使用ssh-agent的方法。
如果使用xdm,你需要編輯 .xsession文件,在$HOME目錄中。有兩種可能的過程:
復制 .xsession到.xsession-stuff并且修改.xession:
exec ssh-agent ./.xsession-stuff
或者你需要編輯.xsession文件并且搜索每一行表達式包含"exec program"。修改成exec ssh-agent program。
然后退出并重新啟動。ssh-agent將把X-session作為它的一個子進程啟動,并且等待ssh密鑰插入到它的數據庫中。
如果xdm不被使用,那么ssh-agent的使用是非常簡單的,因為你可以啟動你的X使用以下命令:
ssh-agent startx
這樣就可以運行ssh-agent了。
ssh-add
每當ssh-agent正常運行了,你可以在它的數據庫中使用命令ssh-add加入新的身份信息。你只可以加入某些個祖先ssh-agent的子進程的身份信息,否則將會出錯:
Failed to connect to authentication agent - agent not running?
使用ssh-add是非常簡單的:從命令行輸入:
ssh-add
ssh-add掃描文件$home/.ssh2/身份信息,它包含了私人的密鑰。如果這個文件不存在,則設定一般情況下的私人信息文件(如:$HOME/.ssh2/id_dsa_1024_a)。
如果一個公共密鑰文件需要一個暗號,ssh-add會詢問這個暗號:
Adding identity: /home/matt/.ssh2/id_dsa_1024_a.pub
Need passphrase for /home/matt/.ssh2/id_dsa_1024_a (..)
Enter passphrase:
你可以從agent那兒獲得所有的帳戶身份通過命令ssh-add -l:
Listing identities.
The authorization agent has one key:
id_dsa_1024_a: 1024-bit dsa, (...)
結論和一些有用的鏈接
許多telnet,rlogin,ftp的用戶可以沒有認識到它們的password在網絡傳送過程中是沒有被加密的,但是,使用一些安全的協議可以保證在不安全的網絡上的傳輸安全。SSH,對于所有的傳輸都加了密,有效地防止了偷聽,搶劫連接和其它網絡攻擊。
這些文章只是介紹ssh軟件包的,可以在ssh,sshd和sftp的手冊中找到更多有用的東西。你可以從http://www.ssh.com/products/ssh/得到ssh軟件包(LinuxByte注:本站下載SSH2),你可以從http://www.ssh.com/tech/中得到更多的SSH的技術內容和加密技術。你也可以從http://www.openssh.com/得到openssh的SSH協議訴可執行文件。輕便版本在http://www.openssh.com/portable.html.你也可以從http://www.openssh.com/faq.html得到SSH的FAQ。
本文來自:http://doc.linuxpk.com/4213.html