最近一直都在糾結怎麼用本地的linux連接遠程的服務器 哈哈哈 在網上找到了一個資料 然後就成功了 記錄下,linux還可以這樣玩 哈哈
http://edu.codepub.com/2010/1017/26448.php
SSH
傳統的網絡服務程序,如FTP,POP,TELNET等在本質上都是不安全的,因爲他們在網絡上使用明文傳送口令和數據.別有用心的人非常容易截獲這些口令和數據.而且這些服務程序的安全驗證方式也是有弱點的.就是很容易收到"中
傳統的網絡服務程序,如FTP,POP,TELNET等在本質上都是不安全的,因爲他們在網絡上使用明文傳送口令和數據.別有用心的人非常容易截獲這些口令和數據.而且這些服務程序的安全驗證方式也是有弱點的.就是很容易收到"中
SSH
傳統的網絡服務程序,
如
FTP,POP,TELNET
等在本質上都是不安全的
,
因爲他們在網絡上使用明文傳送口令和數據
.
別有用心的人非常容易截獲這些口令和數據
.
而且這些服務程序的安全驗證方式也是有弱點的
.
就是很容易收到
"
中間人
"
冒充真正服務器接收你傳給服務器的數據
.
然後在冒充你把數據傳給真的服務器
.
SSH的全稱是
Secure SHell.
通過使用
SSH,
你可以將所有傳輸的數據加密
.
這樣
"
中間人
"
這種方式就不可能實現了
.
而且也能夠防止
DNS
和
IP
欺騙
.
還有額外的好處就是數據是經過壓縮的
,
傳輸速度塊
.SSH
具有很多功能
,
可以作爲
TELNET
的替代品
,
也可以爲
FTP,POP
甚至
PPP
提供一個安全
"
通道
.
SSH有兩個不兼容的版本
,1.x
和
2.x;
使用
SSH2.x
的客戶端是不能夠連接到
SSH1.x
上的
.OpenSSH
同時支持這兩種版本
.
SSH的安全驗證機制
SSH的安全驗證從客戶端來看
,
提供兩種級別的安全驗證
.
1.
>>>>基於口令的安全驗證
<<<<
只要你知道自己的賬號和口令,
就可以登錄到遠程主機
.
所有傳輸的數據會被加密
,
但不能保證你正在連接的服務器就是你想連接的服務器
.
可能會有別的服務器正在冒充真的服務器
,
也就是會受到
"
中間人
"
的***
.
2.
>>>>基於密鑰的安全驗證
<<<<
需要依靠密鑰,
也就是你必須爲自己創建一對密鑰
,
並將公鑰放在需要需要訪問的服務器上
.
如果你連接到
SSH
服務器
,
客戶端軟件就會向服務器發出請求
,
請求用你的密鑰進行安全驗證
.
服務器收到請求後
,
先在該服務器的
home
目錄下尋找你的公用密鑰
,
然後把它和你發來的公用密鑰進行比較
.
如果兩個密鑰一致
,
服務器就用公用密鑰加密
"
質詢
"
並把它發給客戶端
.
客戶端收到
"
質詢
"
後就可以用你的私人密鑰解密在將其發給服務器
.
這種方式必須知道自己的密鑰口令
.
安裝測試OpenSSH
-
測試系統Ubuntu10.04
sudo apt-get install openssh-client ;安裝
SSH
客戶端
sudo apt-get install openssh-server ;安裝
SSH
服務器端
sudo /etc/init.d/ssh restart ;啓動
SSH
服務
netstat -tlp ;測試
SSH
服務
.
出現一下信息
,
說明
SSH
配置成功
.
tcp
0
0
*:ssh
*:*
LISTEN
-
tcp6
0
0
[::]:ssh
[::]:*
LISTEN
-
先在可以嘗試第一次連接,
連接命令如下
:
ssh -l USERNAME HOSTIP
;連接命令
,USERNAME
爲用戶名
,HOSTIP
爲主機
IP,
第一次連接顯示如下信息
:
The authenticity of host '192.168.3.194 (192.168.3.19)' can't be established.RSA key
fingerprint is e1:ef:04:1c:37:c4:f7:c1:98:1d:a5:0d:f4:ca:50:af.Are you sure you
want to continue connecting (yes/no)? yes
;SSH告知用戶
,
這個主機不能識別
,
這時鍵入
"yes",SSH
就會將相關信息
,
寫入
"~/.ssh/know_hosts"
中
,
;再次訪問
,
就不會有這些信息了
.
然後輸入完口令
,
就可以登錄到主機了
.
SSH密鑰的創建
生成和分發SSH
密鑰
,
過程如下
/.ssh# ssh-keygen
;生成密鑰
Generating public/private rsa key pair.
Enter file in which to save the key (/home/birdy/.ssh/id_rsa): ;輸入回車
Enter passphrase (empty for no passphrase): ;輸入密碼
Enter same passphrase again: ;再次輸入
Your identification has been saved in /home/birdy/.ssh/id_rsa.;保存爲
id_rsa
Your public key has been saved in /home/birdy/.ssh/id_rsa.pub.;保存爲
id_rsa.pub
The key fingerprint is:
;[內容
]
The key's randomart image is:
;[內容
]
/.ssh# ssh-keygen -d ;
如果是SSH2.x
用該命令生成
Generating public/private dsa key pair.
Enter file in which to save the key (/home/birdy/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/birdy/.ssh/id_dsa.
Your public key has been saved in /home/birdy/.ssh/id_dsa.pub.
The key fingerprint is:
;[內容
]
The key's randomart image is:
;[內容
]
birdy@birdy-desktop:~/.ssh$
爲了防止別人知道你的密鑰,
定期的重新更新並分發密鑰
,
創建好密鑰後
,
你的主目錄下應該有下面的文件
,
且
私鑰的權限爲'-rw-------',
公鑰的權限爲
'-rw-r--r--'
否則你的SSH
就不會工作
.
而在你不再會去使用SSH
服務的時候
(
比如
,
你換了一臺主機
),
記得要
刪除
他們.
如果你創建的密鑰文件不再主目錄下的.ssh
目錄下
,
要將他們拷貝進去並保證正確的文件權限
birdy@birdy-desktop:~/.ssh$ ll
總用量 20
-rw------- 1 birdy birdy 736 2010-10-15 13:44 id_dsa
-rw-r--r-- 1 birdy birdy 609 2010-10-15 13:44 id_dsa.pub
-rw------- 1 birdy birdy 1743 2010-10-15 13:44 id_rsa
-rw-r--r-- 1 birdy birdy 401 2010-10-15 13:44 id_rsa.pub
-rw-r--r-- 1 birdy birdy 442 2010-10-15 10:55 known_hosts
SSH配置
SSH安裝的時候
,
沒有默認的用戶配置文件
,
不過我們可以自己加
.
如果你要登陸
192.168.3.11
上的
linux
用戶
,
你可以鍵入
"ssh -l linux 192.168.3.11"
下面介紹一下簡化這個命令的方法
.
在~/.ssh
下建立文件
config
編寫一下內容
:
Host *linux
HostName 192.168.3.11
User linux
在命令行運行"ssh linux"
就可以登錄
192.168.3.11:linux
了
.
當然,
還有更多別的選項
,
如
ForwardAgent, Compression, ForwardX11 FallBackToRsh
等
.
這裏就不羅列了
.man
一下
,
應該都有了
.
用"scp"
拷貝文件和目錄
SSH提供了一些命令和
shell
用來登錄遠程服務器
.
在默認情況下
,
不允許你拷貝文件
,
但還是提供了一個
"scp"
命令
,
使用方法如下
:
;本地文件複製到遠程
scp FileName RemoteUserName@RemoteHostIp:RemoteFile
scp FileName RemoteHostIp:RemoteFolder
scp FileName RemoteHostIp:RemoteFile
;本地目錄複製到遠程
scp -r FolderName RemoteUserName@RemoteHostIp:RemoteFolder
scp -r FolderName RemoteHostIp:RemoteFolder
;遠程文件複製到本地
scp RemoteUserName@RemoteHostIp:RemoteFile FileName
scp RemoteHostIp:RemoteFolder FileName
scp RemoteHostIp:RemoteFile FileName
;遠程目錄複製到本地
scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderName
scp -r RemoteHostIp:RemoteFolder FolderName
轉自 http://blog.csdn.net/zhangjian33446/article/details/6363444?reload