Categories
學習筆記

使用SSH+private key連接linux服務器

Q1: SSH是三小? Secure Shell(縮寫为SSH)是一款專为远程登录会话和其他网络服务提供加密的协议,透過SSH可以對所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。OpenSSH是SSH的替代软件包,而且是開放源代碼且自由的,現在Unix-like系統基本上都用它。你的unix-like系統的vps是使用的遠程都靠它。 Q2: 為什麼我需要這個鬼密钥? 在客户端来看,SSH提供两种级别的安全验证。 第一种级别(基于密碼的安全验证),知道帐号和密碼,就可以登录到远程主机,并且所有传输的数据都会被加密。但是,可能会有别的伺服器在冒充真正的伺服器,无法避免被「中间人」攻击。 第二种级别(基于密钥的安全验证),需要依靠密钥,也就是你必须为自己创建一对密钥,并把公有密钥放在需要访问的伺服器上。客户端软件会向伺服器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在你在该伺服器的用户根目录下寻找你的公有密钥,然后把它和你发送过来的公有密钥进行比较。如果两个密钥一致,伺服器就用公有密钥加密「质询」(challenge)并把它发送给客户端软件。从而避免被「中间人」攻击。 Q3: 那我要怎麼弄出這個好像很厲害的東西? 首先,你必須先用鬧判斷一下你的電腦是什麼系統,然後再往下看。 Unix-like系統(CentOS、Debian、Ubuntu、OS X、FreeBSD等): 1)在我們電腦的Terminal里輸入下列指令,然後死命Enter(回車),然後就好了。 ssh-keygen -t rsa -C "My Key" 2)如上圖所示,創建完畢後,會告訴你你的private key和public key在哪。 Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. 3)而public key是我們需要的東西,你可以用下面的指令顯示出來,保存起來。 cat /root/.ssh/id_rsa.pub 4)登陸你的遠程服務器,把public_key添加到遠程服務器里。 mkdir -p ~/.ssh vi ~/.ssh/authorized_keys 若是有好幾台電腦要連這台服務器,且都想加public_key,可以enter換行后繼續粘貼另一個public_key。 5)大功告成,開心地進行無密碼連接吧。 Windows系統: 1)首先,ssh連接你可以選擇用putty,而生成密鈅,你需要用到puttygen。 這是putty家族的官方網址,請自行下載putty和puttygen。 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html […]