SSH学习之中的一个 OpenSSH基本使用
在Linux系統中。OpenSSH是眼下最流行的遠程系統登錄與文件傳輸應用,也是傳統Telenet、FTP和R系列等網絡應用的換代產品。
當中,ssh(Secure Shell)能夠替代telnet、rlogin和rsh,scp(Secure Copy)與sftp(Secure FTP)能后替代ftp。
OpenSSH採用密鑰的方式對數據進行加密,確保傳輸數據的安全。在正式開始傳輸數據之前,兩方首先要交換密鑰,當收到對方的數據時。再利用密鑰和對應的程序對數據進行解密。
這樣的加密的傳輸數據有助于防止非法用戶獲取數據信息。
OpenSSH採用隨機的方式生成公私密鑰。
密鑰通常僅僅需生成一次,必要時也能夠又一次制作。
當使用ssh命令登錄到遠程系統時,OpenSSHserver的sshd守護進行將會發送一個公鑰,OpenSSHclient軟件ssh將會提示用戶確認是否接收發送的公鑰。同一時候,OpenSSHclient也會向server回傳一個密鑰,使OpenSSH連接兩方的每一個系統都擁有對方的密鑰,因而可以解密對方經由加密鏈路發送的加密數據。
OpenSSHserver的公鑰與私玥均存儲在/etc/ssh文件夾中。在OpenSSHclient,用戶收到的全部公鑰,以及提供密鑰的OpenSSHserver的IP地址均存儲在用戶主文件夾下的~/.ssh/known_hosts文件里(.ssh是一個隱藏文件夾)。假設密鑰與IP地址不再匹配。OpenSSH將會覺得某個環節出了問題。
比如。又一次安裝操作系統或者升級OpenSSH都會導致系統再次生成新的密鑰,惡意的網絡攻擊也會造成密鑰的變動。因此,當密鑰發生變化時,總是應當先了解密鑰發生變化的原因,以確保網絡訪問期間的數據安全。
1 安裝OpenSSHserver
在Ubuntu中,OpenSSH的client作為一個基礎系統軟件會隨這系統一起安裝。但OpenSSHserver須要單獨安裝。安裝openssh-serverserver軟件包,能夠使用apt-get、aptitude或synaptic等軟件工具。
$ sudo apt-get install openssh-server
安裝之后。能夠使用下面命令驗證OpenSSHserver的sshd守護進程是否已開啟。
$ pidof sshd
2 使用SSH登錄到遠程系統
在OpenSSH中,ssh是一個重要的client應用程序。利用ssh,能夠採用加密的通信方式。登錄到遠程系統,其語法格式例如以下:
ssh [options] [-l login_name][user@]hostname [command]
當中,”-llogin_name”選項用于指定username。表示以哪一個用戶身份登錄到遠程系統。假設不提供username,則以當前用戶的身份登錄到遠程系統。比如,以下命令形式表示以webgod用戶身份,採用默認的22port。登錄到遠程系統(注意,這里”Welcome to Ubuntu 12.04 LTS (GNU/Linux) ……https://helo.ubunut.com/”出自/etc/motd文件)。除了”-l”選項之外,為了以其它用戶身份登錄到遠程系統,還能夠使用”user@hostname”的方式登錄到遠程系統。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF2aWRza3kxMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
第一次使用ssh登錄到遠程系統時。ssh將會給出一個警告信息,提示用戶確認連接的遠程系統是否正確。
假設用戶確認yes,ssh將會在用戶主文件夾的~/.ssh/known_hosts文件里存儲遠程系統的密鑰。同一時候也會把client用戶的密鑰發送到遠程系統。當用戶再次登錄到同一遠程系統時,就不會再出現提示信息了。
3 使用ssh運行遠程系統命令
詳細使用方法。在ssh命令后添加一條命令。命令前后使用雙引號括起來。
$ ssh webgod@10.203.138.129 “uname -r”
這樣的一次性登錄。運行遠程命令,然后馬上返回的功能是很實用的。
4 使用SCP替代FTP
從網絡通信角度來看,FTP的傳輸數據方式是不安全的,由于FTP協議在網絡中傳輸的username、password和數據沒有採取不論什么加密措施。比較安全的方法是採用OpenSSH的SFTP和SCP。
scp是OpenSSH中的還有一個重要client軟件。scp命令的格式例如以下:
scp [[user@host1:]file1[[user@]host2:]file2
第一個參數是源文件。第二個參數是目的文件。當須要復制遠程系統中的文件時。SCP首先須要成功登錄到遠程系統中。然后才干開始傳輸文件,因此要求提供遠程系統的名字、username和password。
利用scp下載文件
比如,要把遠程系統中的~/.ssh/id_rsa.pub文件拷貝到本地系統的/tmp文件夾中。
$ scp webgod@10.203.138.129:~/.ssh/id_rsa.pub /tmp
假定已經把sshd守護進程監聽的TCPport改動為435。要使用該port進行文件復制,則能夠用例如以下命令。
$ scp -P 534 webgod@10.203.138.129:~/.ssh/id_rsa.pub /tmp
利用scp上傳文件
$ scp /etc/hosts webgod@10.203.138.129:/tmp
$ scp -P 435 /etc/hosts webgod@10.203.138.129: /tmp
總結
以上是生活随笔為你收集整理的SSH学习之中的一个 OpenSSH基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玉米煮多久会熟啊?
- 下一篇: [Luogu 1850] noip16