ssh之pub-key登陆服务器

ゝ一世哀愁。 2023-06-13 09:24 89阅读 0赞

ssh无密码登陆服务器

  • 服务器配置
  • 客户端配置
  • sudo权限配置
  • scp上传下载方法
  • 错误处理
    • 所选的用户密钥未在远程主机上注册

服务器配置

1.创建用户

  1. useradd demo

2.设置用户密码

  1. passwd demo
  2. # 输入密码
  3. # 回车

3.生成 .ssh目录

  1. # 切换用户
  2. su demo
  3. # 生成密钥
  4. ssh-keygen -t rsa -b 4096 -C 'demo@demo.com'
  5. # 进入 ssh目录
  6. cd ~/.ssh
  7. # 查看密钥
  8. ls -a
  9. # 回车
  10. # 是否输入密码 看个人情况

4.配置sshd_config

  1. # 打开sshd_config
  2. vim /etc/ssh/sshd_config
  3. # 去掉前面的注释
  4. PubkeyAuthentication yes # 允许公钥登陆
  5. AuthorizedKeysFile .ssh/authorized_keys # 表示存放pub-key的地址
  6. PasswordAuthentication yes # 表示允许密码登陆 注意:当公钥能连上服务器时 要改为 no

客户端配置

1.打开git bash

  1. # 生成密钥
  2. ssh-keygen -t rsa -b 4096 -C '备注'
  3. # 回车
  4. # 是否输入密码 看个人情况

2.进入 .ssh目录

  1. cd ~/.ssh
  2. # 查看所有文件包括隐藏目录
  3. ls -a

3.scp上传pub-key

  1. scp id_rsa.pub 用户名@服务器ip地址:/tmp
  2. # 例子:
  3. scp id_rsa.pub demo@192.168.2.1:/tmp

4.服务器配置

  1. # 进入临时目录
  2. cd /tmp
  3. # 查看上传的pub-key文件
  4. ls -a
  5. # 重命名 pub-key文件
  6. mv id_rsa.pub authorized_keys
  7. # 移动pub-key文件到 .ssh目录下
  8. mv authorized_keys ~/.ssh

5.连接测试

  1. ssh demo@192.168.2.1
  2. # 连接成功 并且不用输入密码
  3. # 失败 则检查前面配置

sudo权限配置

1.修改sudoers 文件权限

  1. # 给予写权限
  2. chmod 777 /etc/sudoers
  3. # 打sudoers文件
  4. vim /etc/sudoers
  5. # 在Allow root to run any commands anywhere下添加 和root 一样的配置
  6. user ALL=(ALL) ALL
  7. # 保存退出

2.修改sudoers权限为 440

  1. chmod 440 /etc/sudoers

scp上传下载方法

1.上传文件

  1. scp file user@service_ip:/dir

2.下载文件

  1. scp user@service_ip:/dir/file /local/dir

3.上传目录到服务器

  1. scp -r /local/dir user@service_ip:/dir

4.下载服务器目录到本地

  1. scp -r user@service_ip:/dir /tmp/local_dir

错误处理

所选的用户密钥未在远程主机上注册

这是 .ssh目录的权限问题导致,解决办法如下

  1. cd ~
  2. sudo chmod 700 .ssh
  3. cd .ssh
  4. sudo chmod 600 *

发表评论

表情:
评论列表 (有 0 条评论,89人围观)

还没有评论,来说两句吧...

相关阅读

    相关 简易命令登陆ssh服务器

    登陆ssh服务器需要账号与密码,而往往我们需要频繁的登陆与登出或者切换服务器,会很繁琐。其实可以使用expect来实现简易命令登陆ssh服务器,比如一个“go”~ 一、安装

    相关 ssh 别名登陆

    此方法配合ssh 免密码登录 密钥登录可以快速登录服务器 通常我们在 Termianl 下用 ssh 链接远程主机的时候,每次都需要输入一长串的用户名加主机地址,是不是觉得很

    相关 远程登陆ssh

    远程登陆ssh 以下操作需要一个客户端和服务端两个虚拟机来完成。 打开两个虚拟机,可输入“nm-connectiong-editor”来修改ip 示例: 服务端

    相关 ssh登陆

    之前在windows下有putty,xshell,mobaXterm 工具可以选择。 现在用mac,暂时没怎么找到好到软件,直接用ssh好了。 ssh -p 22 user