首页 > 代码库 > ubuntu ssh

ubuntu ssh

客户端

Client端生成公钥和密钥

 

我们使用RSA密钥认证的目的是:从Client端登陆Server端时,不需要密码认证。

所以,我们在进行认证时首先需要在Client端建立属于Client端自己的一对密钥(公钥和私钥),建立方法如下:

在命令行下执行:ssh-keygen 

执行过程中,它先要求你确认保存公钥的位置(默认为:.ssh/id_rsa),

然后它会让你重复输入一个密码两次,如果不想在使用公钥的时候输入密码,可以留空

执行完毕后,就会生成数据Client端的一对密钥。

执行过程如下图:

SSH 密钥默认储存在账户的家目录下的 ~/.ssh 目录中

关键是看有没有用 xxx_rsa 和 xxx_rsa.pub 来命名的一对文件,有 .pub 后缀的文件就是公钥,另一个文件则是密钥。

生成的一对公私钥,顾名思义:

公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。

生成的密钥截图如下:

服务端:

通过腾讯后台把公钥加进去。会出现~/.ssh/authorized_keys   通过sudo ls -all查看隐藏的文件。

/etc/ssh/sshd.config

PermitRootLogin no     # 是否允许 root 登入!预设是允许的,但是建议设定成 no!

PubkeyAuthentication yes  # 是否允许 Public Key ?当然允许啦!只有 version 2 
AuthorizedKeysFile      .ssh/authorized_keys 
              # 上面这个在设定若要使用不需要密码登入的账号时,那么那个 
              # 账号的存放档案所在档名!

PasswordAuthentication yes # 密码验证当然是需要的!所以这里写 yes 啰! 
PermitEmptyPasswords no  # 若上面那一项如果设定为 yes 的话,这一项就最好设定 
              # 为 no ,这个项目在是否允许以空的密码登入!当然不许

StrictModes=no  如果是yes就是对文件权限等等严格检查。

ubuntu ssh