SSH免密碼登錄Linux服務器 -开发者知识库

SSH免密碼登錄Linux服務器 -开发者知识库,第1张

服務器:Ubuntu 16.04 x64

本機:Ubuntu 16.04 x64


1、查看本機是否存在密鑰對

username@ubuntu:~$ cd ~/.ssh
username@ubuntu:~/.ssh$ ls
id_rsa id_rsa.pub


2、如果不存在,則首先生成密鑰對

username@ubuntu:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxx username@ubuntu

The key's randomart image is:
---[RSA 2048]----
|                 |
|                 |
|                 |
|        A        |
|    randomart    |
|      image      |
|                 |
|                 |
|                 |
----[SHA256]-----

3、將本機公鑰上傳到遠程服務器

username@ubuntu:~$ scp ~/.ssh/id_rsa.pub root@romote_server_IP:/root/
The authenticity of host 'romote_server_IP (romote_server_IP)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'romote_server_IP' (ECDSA) to the list of known hosts.
root@romote_server_IP's password: xxxxxxxxxx
id_rsa.pub 100% 390 0.4KB/s 00:00
username@ubuntu:~$

4、登錄遠程服務器,將本機公鑰添加到遠程服務器的authorized_keys中,如果服務器中用戶目錄下不存在.ssh文件夾和authorized_keys文件,則新建並修改權限

username@ubuntu:~$ ssh root@romote_server_IP
root@romote_server_IP's password:
Welcome to Ubuntu 16.04.x LTS (GNU/Linux x.x.x-xx-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

xx packages can be updated.
xx updates are security updates.


Last login: last_login_time from xxx.xx.xx.xxx
root@remote_server:~# ls -a
. .bash_history .cache .viminfo id_rsa.pub
.. .bashrc .profile .wget-hsts
root@remote_server:~# mkdir .ssh
root@remote_server:~# chmod 700 ~/.ssh
root@remote_server:~# touch ~/.ssh/authorized_keys
root@remote_server:~# chmod 600 ~/.ssh/authorized_keys
root@remote_server:~# cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
root@remote_server:~#

5、本機配置遠程服務器別名代替IP地址

username@ubuntu:~$ vim ~/.ssh/config
Host remote_server_alias
HostName xxx.xxx.xx.xx
Port 22
User remote_server_username
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
~
~
:wq
username@ubuntu:~$ ssh remote_server_alias
Welcome to Ubuntu 16.04.x LTS (GNU/Linux x.x.x-xx-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

xx packages can be updated.
xx updates are security updates.


Last login: last_login_time from xxx.xx.xx.xxx
root@remote_server:~#






最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复