Windows通过**SSH登陆Linux

概述

客户端通过**SSh登陆Linux的条件:

  • 服务器端登陆账户home目录下的.ssh文件夹存在公钥,命名authorized_keys
  • 客户端拥有与公钥配对的私钥
    下面以win 10通过自带的OpenSSH客户端以**方式登陆Ubuntu为例进行说明
操作
  1. 生成**对
[email protected]:~$ssh-******
Generating public/private rsa key pair.
Enter file in which to save the key (/home/student/.ssh/id_rsa):这里按enter默认或另外写路径和文件名
Enter passphrase (empty for no passphrase):是否给私密再加一次密,无需则不填
Enter same passphrase again:由于我有设置,这里需要再输入一次密码
Your identification has been saved in /home/student/.ssh/id_rsa.
Your public key has been saved in /home/student/.ssh/id_rsa.pub.
The key fingerprint is:
78:ad:4c:7e:cc:a4:9b:ac:34:50:4c:59:c8:ff:60:a1 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|     ..+.        |
|     o+ .        |
|      oo .       |
|     .E.+.       |
|    . ..Soo      |
|     . = *.      |
|      o = +      |
|     . o +       |
|      ..+        |
+-----------------+
  1. 配置公钥
# 查看**对是否生成
[email protected]:~$ ls .ssh
id_rsa  id_rsa.pub
# 将公钥放置在 authorized_keys 中
[email protected]:~$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
# 设置权限
[email protected]:~$ chmod 600 .ssh/authorized_keys
[email protected]:~$ chmod 700 .ssh

上面将公钥放置在 authorized_keys中的步骤用到了输出重定向,如果不嫌麻烦可以用mkdir .ssh和touch .ssh/authorized_keys手动创建,然后cat出id_rsa.pub的内容,用vim或nano将其复制到authorized_keys中。

  1. 下载私钥到客户端
  • 手工操作方式:本地新建一个文本文件,将上述id_rsa中内容复制进去
  • 通过scp命令复制:
PS C:\Users\XXX> scp -P 2222 [email protected].0.0.1:/home/student/.ssh/id_rsa D:\key
[email protected].0.0.1's password: 这里输入密码
id_rsa   100% 1766     1.7KB/s   00:00

上述命令加入了端口号,一般默认22,不用加

  1. 通过**登陆
PS C:\Users\xxx> ssh [email protected].0.0.1 -p 2222 -i D:\id_rsa
Enter passphrase for key 'D:\id_rsa': 这里输入**保护密码
Welcome to Ubuntu 14.04.6 LTS (GNU/Linux 3.13.0-167-generic x86_64)
……

登陆成功!这里只输入了**保护密码,而不用再输入账号本身的口令,如果之前设置不用给**再加密,这里可直接登陆

问题与解决

从远程复制到windows的**,在登陆时可能会出现如下提示:

Permissions for 'D:\id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

同样,这是权限的问题,在**文件的安全设置中将只加入当前用户的权限即可。操作截图如下:

  • 文件属性-安全-高级:
    Windows通过**SSH登陆Linux
  • 移除权限继承:
    Windows通过**SSH登陆Linux
  • 加入当前用户:
    Windows通过**SSH登陆Linux