SSH
[TOC]
什么是SSH Key?
SSH全稱Secure SHell,即十分安全的Shell,是IETF(Internet Engineering Task Force)的Network Working Group所制定的一種協(xié)議,用來取代傳統(tǒng)的telnet和R系列命令(rlogin,rsh,rexec等)遠程登陸和遠程執(zhí)行命令的工具,實現(xiàn)對遠程登陸和遠程執(zhí)行命令加密。防止由于網(wǎng)絡監(jiān)聽而出現(xiàn)的密碼泄漏,對系統(tǒng)構成威脅。
SSH協(xié)議目前有SSH1、SSH2兩個版本,SSH2兼容SSH1,目前的實現(xiàn)主要有
OpenSSH 由 OpenBSD組織 開發(fā) 免費軟件
SSH Communications 由 SSH Communications Security Corporation 開發(fā) 商業(yè)軟件
OpenSSH 因為免費,所以廣泛使用于開源系統(tǒng)中,如Linux,其軟件組成為
sshd ——SSH服務端程序
sftp-server ―― SFTP服務端程序(類似FTP但提供數(shù)據(jù)加密的一種協(xié)議)
scp ―― 非交互式sftp-server的客戶端,用來向服務器上傳/下載文件
sftp ―― 交互式sftp-server客戶端,用法和ftp命令一樣。
slogin ―― ssh的別名
ssh ―― SSH協(xié)議的客戶端程序,用來登入遠程系統(tǒng)或遠程執(zhí)行命令
ssh-add ―― SSH代理相關程序,用來向SSH代理添加dsa key
ssh-agent ―― ssh代理程序
ssh-keyscan ―― ssh public key 生成器
什么是 known_hosts?
位置在 ~/.ssh/konwn_hosts中
第一次ssh登錄后,ssh會把登錄的ssh指紋(fingerprint)存放在用戶目錄的.ssh/know_hosts中,如果遠程系統(tǒng)重裝過,ssh指紋會改變,需要刪除后,重新進行登錄。
記錄鏈接到對方時,對方給的host key,每次連線都會檢查目前對方給的host key 與你記錄的host key是否相同,進行簡單的驗證。
重裝服務器時,需要先進入自己電腦的 ~/.ssh/konwn_hosts 刪除原有的服務器的host key
如何生成SSH Key?
檢查SSH Key是否存在?
ls -al ~/.ssh
# 查看是否存在 ssh key
生成新的SSH Key
ssh-keygen -t rsa -C "郵箱"
默認在相應路徑下生成,即: /root/.ssh/
系統(tǒng)會詢問你 是否修改路徑?輸入密碼?確認密碼? 三個問題都可以敲空格飄過
隨后,在/root/.ssh/下會生成兩個文件,分別是公鑰 id_rsa.pub ,私鑰 id_rsa
注意點
.ssh目錄權限是 ssh-keygen自己生成的不要亂改,這些權限不能多也不能少,少了則無法使用,多了則不安全
.ssh目錄權限是700
id_rsa 權限是600
authorized_keys 權限是 644
如果你需要登陸服務器并執(zhí)行不止一個命令,必須要把命令用單引號或雙引號引起來:
ssh 172.18.6.227 “cd /root && ls “
參考文獻
[1] minmig,ssh key 免密碼登錄[EB/OL] http://blog.chinaunix.net/uid-773723-id-152230.html
[2] Jackie li,linux ssh 使用深度解析(key登錄詳解)[EB/OL] http://blog.lizhigang.net/archives/249