1.什麼是ssh?
ssh全稱secure shell,顧名思義意思是說更安全的shell。ssh是一種遠端登入和遠端執行命令的工具,實現了對遠端執行命令的加密。防止由於網路監聽而出現的密碼洩漏,對系統構成威脅。
ssh協議目前有ssh1和ssh2,ssh2協議相容ssh1。使用該協議的軟體主要有,openssh和ssh communications security corporation公司的ssh。前者是openbsd組織開發的一款免費的ssh軟體,後者是商業軟體,所以在多數免費的類unix系統中一幫使用的都是openssh。另外,openssh和ssh communications的登入公鑰和私鑰的格式是不同的,如果想要用ssh產生的私鑰或者公鑰登入openssh需要進行格式的轉換。
2.sshd—配置
(1)首先檢視linux是否安裝了ssh:ssh -v
如果輸出類似下面則說明已經安裝了openssh。
openssh_6.2p2, osslshim 0.9.8r 8 dec 2011
(2)ubuntu上預設只安裝了openssh-client, 需要繼續安裝ssh-server
sudo apt-get install opens-server
安裝ssh-client
sudo apt-get install opens-client
mac預設安裝了client和server,不需要進行安裝。
(3)檢視sshserver是否啟動
執行命令:ps -e | grep sshd
輸出:910 ttys000 0:00.00 grep sshd
輸出如上,說明服務正常啟動
否則使用命令啟動服務:service ssh start
mac上啟動服務需要在preference中設定允許遠端登入:如下圖所示:
(4)修改埠號
ssh預設的服務埠號為22,我們可以根據自己的需要進行修改:
mac: vim /etc/sshd_config
ubuntu:vim /etc/ssh/sshd_config
修改其中的port後面的引數,完成後重啟sshd服務service sushi restart
3.遠端登入
遠端登入的前提是目標機器的ssh服務已經開啟,並且需要知道對方的ip;
登入常用格式:ssh [-l login_name] [-p port] [user@]hostname
(1)不指定使用者:ssh 192.168.0.11
(2)指定使用者:ssh -l root 192.168.0.11
(3)指定埠:ssh -l root -p 222 192.168.0.11
ssh -p 222 [email protected]
4.使用ssh生成密匙
使用ssh-keygen生成公鑰/私鑰對:ssh-keygen -t rsa -p ''
-p 表示密碼,-p 『'就表示空密碼,也可以不用-p引數,在生成過程中要求輸入密碼時按回車就可以了。另有一些詳細的引數,可以使用man ssh-keygen檢視。
執行這個命令會在/home使用者目錄下生成.ssh目錄,.ssh下油id_rsa(私鑰)和id_rsa.pub(公鑰)
5.使用 ssh key遠端登入
將客戶端機器生成rsa.pub(公鑰)內容複製到伺服器端下使用者目錄下的.ssh/authorized_keys檔案裡:
如果想無密碼登入root,就複製到/root/.ssh/authorized_keys
想無密碼登入其他使用者就複製到/home/usename/.ssh/authorized_keys
複製方法,使用scp:
客戶端機器scp.ssh/[email protected]:tmp/id_rsa.pub
伺服器端機器:cat /tmp/id_rsa.pub >> .ssh/authorized_keys
authorized_key的許可權時600,所以,chmod 600 .ssh/authoeized_keys
配置完成!
6.使用scp傳送檔案
(1)獲取伺服器上的檔案
命令:scp -p 2222 [email protected]:/home/username/tmp/play.tar.gz /home/username/play.tar.gz
埠預設是22,如果沒有更改過則不需要加-p引數。
ip後面的表示要獲取的伺服器上的檔案的路徑和檔名,最後是儲存到本地的檔案的路徑和檔名。
(2)獲取遠端伺服器上的目錄
命令:scp -p 2222 -r [email protected]:/home/username/tmp/play/ /home/username/play/
將伺服器上的play目錄複製到客戶端機器上,-r表示遞迴複製。
(3)將本地檔案上傳到伺服器
命令:scp -p 2222
/home/username/play.tar.gz
[email protected]:/home/username/tmp/play.tar.gz
對照(1)應該很好理解。
(4)將本地目錄上傳到伺服器
命令:scp -p 2222 -r
/home/username/play/
[email protected]:/home/username/tmp/play/
(5)其他可選引數
-v 顯示進度
-c 使用壓縮選項
-4 強行使用ipv4位址
-6 強行使用ipv6位址
總結:這裡寫的還是不夠詳細,之後會寫出詳細的測試過程。
homebrew安裝及常用命令
brew 官網 命令 檢視brew的幫助 brew help 安裝軟體 brew install git 解除安裝軟體 brew uninstall git 搜尋軟體 brew search git 顯示已經安裝軟體列表 brew list 更新軟體,把所有的formula目錄更新,並且會對本機已經...
MongoDB安裝及常用命令
windows下的安裝 c tools mongodb下建立data資料夾,用於存放資料。進入c tools mongodb的bin目錄下,執行mongod.exe dbpath c tools mongodb data啟動服務。注意,如果你的目錄中有空格,會報invalid command 錯誤,...
Docker安裝及常用命令
docker 是乙個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到乙個可移植的容器中,然後發布到任何流行的linux機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。docker 最初是 dotcloud 公司創始人 solomon hykes 在法國期間發起的乙...