linux中公鑰設置和遠程登陸

  首先申明,如下內容均源於網絡,全部的命令提示,解釋都是預先學習了網上的大牛們且本身進行了實驗。此處只是隨筆/記錄,便於本人之後學習,也便於大牛指正理解錯誤的地方!!nginx

如有大牛發現問題還請在評論區指教。算法

公鑰和私鑰的生成shell

ssh-keygen命令專門是用來生成密鑰的。你們能夠谷歌一下(條件不容許百度一下也行)。vim

這裏列出了最基本的四個:ruby

  1.-t 用來指定密鑰類型(dsa | ecdsa | ed25519 | rsa | rsa1  一般咱們經常使用dsa和rsa算法進行加密,能夠百度搜下);服務器

  2.-P 用來指定密語;網絡

  3.-f 用來指定生成的密鑰文件名;dom

  4.-C 用來添加註釋。ssh

命令:ide

ssh-keygen -t rsa -P 123456 -f test -C 'my test key'

解釋:

就是新建了密語爲123456註釋爲my test key文件名爲test的密鑰。此命令會生成testtest.pub兩個文件,前者爲私鑰文件,後者爲公鑰文件。若是你想免密登陸的話,請將密語設置爲空。

另外:請注意ssh-keygen是用短線符號鏈接在一塊兒的,不要分開,中間若是有空格會報錯:

Bad escape character 'ygen'.———很差的轉義字符「ygen」。

 

也能夠不用輸這麼長的命令一步一步的來根據提示操做:

命令:

ssh-keygen -t rsa  

 

截圖沒截好,最後無字的紅色箭頭文字內容爲:到你建立公鑰目錄下去找test(私鑰)和test.pub(公鑰)兩個文件

 

將公鑰部署到服務器

上一步生成了公鑰和私鑰後,須要將公鑰部署到服務器並用私鑰登陸。使用/winscp/xhell/secureCRT/scp或者你的工具將公鑰上傳到服務器並將文件內容追加到~/.ssh/authorized_keys中。例如:

#在本機上執行此命令,上傳公鑰
1.xshell/secureCRT:
rz -e 找到test test。pub文件目錄
2.scp: scp -P your_port test.pub user@hostname:/tmp
3.winscp:
選擇上傳,或者直接拖放至目標文件夾 #在服務器上執行此命令,追加到authorized_keys(這個名字能夠本身取,但後面使用要用對) cd /home/ && cat test.pub >> ~/.ssh/authorized_keys #更改權限 chmod 600 ~/.ssh/authorized_keys

更改服務器配置

  1.xhell/secureCRT等鏈接工具:

  執行vim /etc/ssh/ssh_config打開ssh_config

    # IdentityFile ~/.ssh/identity

    # IdentityFile ~/.ssh/id_rsa

    # IdentityFile ~/.ssh/id_dsa

    

 

    把前面#去掉,而後在 IdentityFile 後填寫你用來執行ssh時所用的密鑰

  

  2.scp鏈接修改,將以下的配置打開:

  執行vim /etc/ssh/sshd_config打開sshd_config配置文件

   RSAAuthentication yes    PubkeyAuthentication yes    AuthorizedKeysFile  .ssh/authorized_keys

    重啓sshdservice sshd restart或者systemctl restart sshd.service。重啓以後,服務器已經支持遠程ssh鏈接了

 

推薦使用1方法,方便。2方法有點難找。

鏈接服務器

1.xhell/secureCRT鏈接服務器的,直接導入私鑰並鏈接就行(推薦)

2.經過ssh命令來遠程鏈接服務器,執行ssh -p your_port username@domain -i your_private_certification命令,就能夠鏈接到服務器。

pS:

若是隻容許服務器經過公鑰和私鑰的方式來鏈接服務器,可將服務器配置文件/etc/ssh/sshd_config中的PasswordAuthentication yes改成PasswordAuthentication No

 

在重啓sshd時先不要關閉當前的鏈接,當你確認經過私鑰能鏈接到服務器再關閉,否則,一旦私鑰連不上,你又把密碼鏈接方式給禁用了,那就鏈接不上服務器了(反正我是不知道怎麼連了)。

相關文章
相關標籤/搜索