频繁登录Linux服务器时,使用ssh <username>@<host>的方式登录,但是每次都需要输入密码是件很麻烦的事。我们还可以使用私钥/公钥对的方式在免密码登录服务器。
首先需要在远程服务器中安装ssh-server服务,才可以使用ssh登录。如果没有的话可以使用命令直接安装ssh-server,可以以Ubuntu为例安转ssh-server:

sudo apt-get install openssh-server

生成私钥/公钥对

使用命令ssh-kengen可以生成私钥/公钥对,私钥/公钥对的生成算法有两种RSA和DSA。

RSA是非对称加密算法,可以用来加密和签名
DSA(Digital Signature Algorithm)只可以用来数字签名的算法

这里使用RSA算法生成私钥/公钥对。需要确认.ssh目录是否存在,如果不存在的话创建该目录:

mkdir ~/.ssh
chmod 700 ~/.ssh

然后生成私钥/公钥对:

ssh-keygen -b 1024 -t rsa

 Generating public/private rsa key pair.Enter file in which to save the key (/Users/user/.ssh/id_rsa):Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /Users/user/.ssh/id_rsa.Your public key has been saved in /Users/user/.ssh/id_rsa.pub.The key fingerprint is:SHA256:gh0yqSZhpP9ERlhFSKwgy3sTBZwPAT0InLBJ73zcNt8                         user@user-ios.localThe key's randomart image is:+---[RSA 1024]----+|*+*BB+o          ||**oBoo           ||B+ o@ .          ||o++=.*..         ||. =o+oo+S        || + =. ..o .      ||  . o    . E     ||                 ||                 |+----[SHA256]-----+

其中-b的参数是用来设置私钥的长度1024的长度已经可以满足我们对于安全的需求了,不输入任何文件名会在.ssh目录下得到两个文件:id_rsaid_rsa.pub

上传公钥到对应的服务器

使用命令ssh-copy-id可以将认证文件加载到对应的服务器上:

ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<host>

 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysuser@host's password:Number of key(s) added:        1Now try logging into the machine, with:   "ssh 'user@host'"and check to make sure that only the key(s) you wanted were added.

这里会要求我们输入远程服务器的密码。

修改服务器的ssh配置文件

ssh-server配置文件位于:/etc/ssh/sshd_config中,需要设置ssh-server允许使用私钥/公钥对的方式登录,打开配置文件:

vim /etc/ssh/sshd_config

增加设置:

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

然后重启ssh-server:

sudo /etc/init.d/ssh restart

设置完成之后就可以使用命令ssh <username>@<host>直接登录服务器了,不需要再输入密码了。

其他

1.如果公钥丢失的情况,可以使用私钥再次生成公钥,使用私钥生成公钥的命令

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

2.使用ssh-copy-id上传公钥到服务器之后,公钥是存放在服务器的~/.ssh/authorized_keys中。它的存在格式是一行一个公钥,也可以手动把公钥的内容直接复制到服务器的authorized_keys中。使用命令cat id_rsa.pub可以获取到公钥的内容。

使用ssh免密码登录Linux服务器相关推荐

  1. 配置免密码登录Linux服务器

    2019独角兽企业重金招聘Python工程师标准>>> 获取本机SSH公钥,cat ~/.ssh/id_rsa.pub 远程Linux服务器上,vim ~/.ssh/authoriz ...

  2. ssh免密登录linux服务器

    Ssh免密登录 sshd服务 sshd简介: SSH 密钥为登录 Linux 服务器提供了更好且安全的机制.运行 ssh-keygen 后,将会生成公私密钥对.你可以将公钥放置到任意服务器,从持有私钥 ...

  3. linux节点ssh免密码登录linux节点

    需求 节点A要ssh免密码登录节点B. 1.产生密钥 节点A和B都要产生秘钥,并且要注意是否在root用户下,登录对象是用户,而不是机器,所以产生密钥前先从root或者其他用户切换到你说需要的用户.然 ...

  4. SecureCRT使用本地公钥 SSH 免密码登录Linux

    其原理与Linux系统之间的SSH通道原理是一样的 下文中如果创建公钥的格式是:标准公钥和VanDyke私钥格式,需要用ssh-keygen -i -f 转换.如果是OpenSSH密钥格式可直接修改文 ...

  5. 菜鸟Linux系列:[4]SSH免密码登陆远程服务器

    背景:搭建Hadoop环境需要设置无密码登陆,所谓无密码登陆其实是指通过证书认证的方式登陆,使用一种被称为"公私钥"认证的方式来进行ssh登录. 在linux系统中,ssh是远程登 ...

  6. Linux配置SSH免密码登录(非root账号)

    Linux环境下,经常通过SSH从一台服务器登录到另一台服务器,并且登录身份不是root账号,每次都要输入密码挺麻烦的,所以今天就来实战如何配置非root账号的免密码登录: 实战环境 本次实战环境是三 ...

  7. Linux运维:Shell脚本实现ssh免密登录远程服务器

    LInux系统日常运维过程中,经常需要在本地运行脚本执行对远程主机的命令,正常情况下,ssh登录远程服务器时会提示输入密码,这会影响到脚本的自动执行(因为shell脚本中没有自动填充密码的命令).有三 ...

  8. Linux初窥:Linux下SSH免密码登录配置

    目录 环境设置(root权限) 1.关闭防火墙和SELinux 2.设置主机名 3.配置hosts 4.配置sshd 秘钥设置 1.创建免密码登录账户 2.生成秘钥 3.将公钥导入到认证文件 4.设置 ...

  9. Linux设置ssh免密码登录

    一.SSH来源 对于需要远程管理其它机器,一般使用远程桌面或者telnet.linux一般只能是telnet.但是telnet的缺点是通信不加密,存在不安全因素,只适合内网访问. 为解决这个问题,推出 ...

最新文章

  1. 概念的理解 —— 奇点(singularity point)、第一性原理(first principle)
  2. rails 常用方法
  3. 1049-飞机最少换乘次数问题
  4. 小程序多个echars_小程序界面与逻辑
  5. 08.MyBatis整合Log4j
  6. Linux下ping命令、traceroute命令、tracert命令的使用
  7. 翻译: 4.1 多层感知器MLP Multilayer Perceptrons pytorch
  8. 自适应滤波器 | 频域自适应滤波器(FLMS)
  9. recover的用法
  10. 网络爬虫的基本结构是什么?如何建立网络爬虫抓取数据?
  11. 用ffmpeg把yuv格式转化为mpeg格式
  12. 数据库索引的填充因子
  13. php copy函数 失败,wamp中的copy函数bug
  14. 【论文阅读】The Generals’ Scuttlebutt: Byzantine-Resilient Gossip Protocols
  15. Notepad++编辑过的行颜色设置 LocationNavigate.ini设置 高亮 黄色 绿色 修改的行变为黄色 修改的行高亮显示
  16. 网页中嵌入QQ和邮箱
  17. word2016如何插入题注并交叉引用
  18. vivado 2021.2下载安装兼容的matlab
  19. 【LINQ技术】扩展特性和LINQ操作符
  20. caffe代码阅读8: Data_layers的实现细节(各个数据读取层的实现细节) 2016.3.25-28

热门文章

  1. tensorflow学习笔记七----------卷积神经网络
  2. What's the best way to get rid of get parameters from url string?
  3. 后台寻路系统的大体思路与流程
  4. pom.xml的配置详解
  5. 产品经理懂技术=流氓会武术(zz)
  6. VS2005调试时变慢解决办法
  7. 全国计算机等级考试题库二级C操作题100套(第78套)
  8. python方法名加__学习python中__name__方法使用
  9. 华为p40 pro原理图_4188起 华为P40/Pro/Pro+国行发布 顶配8888 河图正式上线!
  10. mac idea配置配置自动清除类中无用的import包