客户端A,要求不需要手工输入密码就能SSH登录到服务端B,怎样才能完成呢?我是小白,一点儿都不懂,搞了一个礼拜成功了,中途还根据网络上的资料,改了配置文件,大家该配置文件的时候要小心啊,一定记得备份,不然就得像我一样,瞎搞3,4天,。下面是操作流程:
一、首先服务端配置
1.从目录/etc/或/etc/ssh/或/etc/conf.d/中找到sshd_config文件,并用vi编辑器打开
2.启用RSAAuthentication和PubkeyAuthentication,并同时指定authorized_keys文件位置,设置如下:
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no/yes(私钥是否需要密码根据需要调整)
3.更新并保存sshd_config文件后,运行命令“servicesshd restart”重新启动服务。
二、切换可以避免密码输入和ssh认证。以下将创建过程简单介绍下。
1.用ssh-keygen创建公钥
vivian@ubuntu:/$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key(/home/vivian/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/vivian/.ssh/id_rsa.
Your public key has been saved in/home/vivian/.ssh/id_rsa.pub.
The key fingerprint is:
b6:49:b0:02:6e:8b:cb:c4:b7:f6:22:8f:00:cf:b8:2avivian@ubuntu
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| . . |
| . . o |
|. o . . S |
|o* . . o o |
|+o+. o |
|E+oo. |
|*o+oo. |
+-----------------+
##输入后,会提示创建.ssh/id_rsa、id_rsa.pub的文件,其中第一个为密钥,第二个为公钥。过程中会要求输入密码,为了ssh访问过程无须密码,可以直接回车。
2.查看钥匙。
[vivian@ubuntu.ssh]# ls ~/.ssh/
id_rsa id_rsa.pub known_hosts
###可以发现 ssh目录下的两枚钥匙。
3.将公钥复制到被管理机器上面
[vivian@ubuntu .ssh]# vivian@ubuntu:/$ ssh-copy-id -i~/.ssh/id_rsa.pub vivian@121.41.119.146(也可用scp命令,但是要记得改变文件的权限)
vivian@ubuntu:/$ cat id_rsa.pub >> ~/.ssh/authorized_keys(将id_rsa.pub 的内容放入~/.ssh/authorized_keys文件中
4.访问
# ssh vivian@121.41.119.146
The authenticity of host '<Game2>(<121.41.119.146>)' can't be established.
RSA key fingerprint is34:b9:92:06:53:e6:91:4d:47:92:73:57:78:6a:5d:09.
Are you sure you want to continueconnecting (yes/no)?yes
Warning: Permanently added '<Game2>(<121.41.119.146>' (RSA) to the list of known hosts.
这是因为首次访问后,ssh会在.ssh/known_hosts中保存各个认证过的主机信息:
121.41.119.146 ssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEAppStzIRxeFn0e737z7KO1tdm6CJUoLapaaoBDZqHy0Z11cUAmpg02dbrqwU7TBY9lDFwWQcry+W8X8qk1CoPdzu8YcMCpw5425mai0/RxkB/RPZ1putL2DQrRBMRTU1m5meLOYRXYlnU5E+YElCgH+ZJ8EXiurOzDvw6vi7pASi9wMQuJosFyNmv5E9/8ULgaKg3LtvP+0O1wPxrHOBDwVq2u9Oi7T2pX8deBEnOI4uG4CGXn/p0ml+uuS4DO3Up2VjqoRtqtuzWExnTyAGS/wQNnN3mera1ERya3FomEVHJRV5K2zJRkgSF8WfETXzQ2rAliOsW/YLTGF8vVvjo5w==
5.再次访问,ssh登录发现可以不用密码登录。
结果就是这酱紫啦:
简化的步骤:
总归起来,就3步:
vivian@ubuntu:/$ ssh-keygen -t rsa
vivian@ubuntu:/$ ssh-copy-id -i ~/.ssh/id_rsa.pub vivian@121.41.119.146
vivian@ubuntu:/$ cat id_rsa.pub >> ~/.ssh/authorized_keys
vivian@ubuntu:/$ ssh vivian@121.41.119.146
提醒:当然在使用ssh之前要安装,要安装ssh服务了。
sudo apt-get install openssh-server