运维 | SSH免密登录服务器

前言

  • 搞了台Linux服务器,想要本地与服务器进行远程连接?想要服务器与服务器之间节点互通?我们可以通过SSH来解决!
  • 你觉得SSH远程连接输入密码太慢?脚本自动化需要人为输入密码?没关系,我们可以配置ssh的免密登录!

什么是SSH

SSH的全称是Secure Shell,使用非对称加密方式,是用于远程登录的最为可靠的网络协议。它的原理是生成一个公私密钥对,然后你可以将公钥放置到任意服务器,当持有私钥的客户端连接到服务器的时,公钥私钥如果匹配成功,系统无需密码就能解除锁定。

配置免密登录

下列步骤演示环境:
本地操作系统:MacOS
服务器操作系统:CentOS

  1. 本地进入”~/.ssh”目录
    cd ~/.ssh

如果没有该目录需要手动创建该目录

    mkdir ~/.ssh
  1. 生成密钥:

ssh-keygen 是一个用来生成、创建和管理 SSH 认证用的公私钥的工具。

    ssh-keygen -t rsa

查看密钥对

    ls

默认私钥文件名:id_rsa
默认公钥文件名:id_rsa.pub

  1. 将公钥内容添加到远程服务器的~/.ssh/authorized_keys文件中

    a)本地Mac环境

     ssh 服务器用户名@服务器地址 "echo \"`cat .ssh/id_rsa.pub`\" >> .ssh/authorized_keys"
    

    b)本地Linux或Windows上的git bash环境

     ssh-copy-id -i ~/.ssh/id_rsa.pub 服务器用户名@服务器地址
    

    ssh-copy-id 是用来将本地公钥拷贝到远程的 authorized_keys 文件的脚本命令,它还会将身份标识文件追加到远程机器的 ~/.ssh/authorized_keys 文件中,并给远程主机的用户主目录适当的的权限。

  2. 把专用密钥添加到ssh-agent的高速缓存中

     ssh-add
    
  3. 使用ssh登录远程服务器系统

     ssh 服务器用户名@服务器地址
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、远程连接服务器 远程连接服务器对于管理员来说,是一个很有用的操作。它使得对服务器的管理更为方便。不过方便归方便...
    Zhang21阅读 39,619评论 0 20
  • SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group...
    shuff1e阅读 1,807评论 1 11
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,001评论 19 139
  • 登录流程 密钥登录比密码登录安全,主要是因为他使用了非对称加密,登录过程中需要用到密钥对。整个登录流程如下: 远程...
    流浪java阅读 1,509评论 0 0
  • 我们知道如果要向远程服务器传输数据和操作必须输入用户名和密码远程登录服务器 ,或用FTP等协议,都需要权限控制。 ...
    欢醉阅读 1,289评论 1 4