SSH免密登陆

  1. 本机生成SSH私钥和公钥
ssh-keygen -t rsa

这样会在当前目录生成名为id_rsa的私钥文件和名为id_rsa.pub的公钥文件,-t表示密钥类型是rsa. 如果你只输入ssh-keygen生成的RSA密钥长度为2048,如果你对安全性要求比较高可以指定4096位的长度:

ssh-keygen -b 4096 -t rsa

这里-b就是多少位,当然你对这些参数感兴趣可以使用--help参数看看具体的含义和解释。当你在生成SSHKEY的时候在命令行下会提示你Enter file in which to save the key,让你确认密钥文件保存的路径,一般回车即可(一般默认会在当前用户家目录下的.ssh目录下)。第二个提示是 Enter passphrase (empty for no passphrase) 让你输入一个密钥的密码,如果不输入则留空;回车生成公私钥完毕

此时你可以使用cat命令看下自己的公私钥。

  1. 服务器配置
  • 方法一:

    • 将本地的公钥文件上传到服务器上,然后在服务器需要免密登录的用户家目录下查看是否有 ~/.ssh/authorized_keys这个文件,

      如果没有手动创建一个:
    touch ~/.ssh/authorized_keys
    • 然后我们将公钥内容写入到authorized_keys文件中,因为这个文件可能已经有内容了,所以你可以使用如下方式
    cat -n ~/.ssh/rsa.pub ~/.ssh/authorized_keys

    这样就将公钥内容追加到authorized_keys中了,然后需要注意配置权限了,否则SSH不会工作的.

    1. 将.ssh目录的权限为700
    2. 将authorized_keys目录的权限为600
  • 方法二:

    • ssh-copy-id 复制公钥
    ssh-copy-id username@remote-server -p prot

    它会将本地的所有公钥都传到服务器.

  1. 运行使用
ssh user@host -p22

SSH别名登陆

  • 配置本地ssh,修改~/.ssh/config ,没有config则自己创建
Host yourserverName 		#设置的别名
HostName xx.xx.xx.xx #服务器IP
Port 22 #端口号
User username #登陆用户名
IdentitiesOnly yes #IdentitiesOnly yes固有配置,多个配置则no
IdentityFile ~/.ssh/id_rsa#对应服务器公钥的本地私钥文件路径,可以不写,我不写也能正常连接

常见问题

ssh key Key is invalid

密钥错误,或者配置错误

github ssh key Key is invalid. Ensure you’ve copied the file correctly

在github上添加新key时,没有正确拷贝 ~/.ssh/id_rsa.pub 内容所致。

一般发生在linux下,因为windows下用notepa++打开这个文件并复制一般是没有问题的,

而linux下使用vim打开再复制就会因为vim添加了回车而导致key添加失败。

解决办法是:使用cat命令将 ~/.ssh/id_rsa.pub 内容输出到终端,再拷贝。


参考资料:

SSH免密登陆和设置别名的更多相关文章

  1. SSH免密登陆原理及实现

    声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 一.SSH简介 SSH(Secure Shell)是一种通信加密协议,加密算法包括:RSA.DSA等. RSA:非对称加密算法,其安全性基于极其困难 ...

  2. ssh免密登陆:sshpass -p [passwd] ssh -p [port] root@192.168.X.X

    正文: ssh免密登陆:sshpass -p [passwd] ssh -p [port] root@192.168.X.X

  3. ssh免密登陆配置

    目录 ssh免密登陆 在A工作站上输入 B服务器上输入 登陆 ssh初次登陆询问 1.单次取消 2.ansible中增加链接参数 3.修改ansible配置参数[推荐] 4.修改服务器上的ssh_co ...

  4. Linux Hadoop集群搭建第二步:--------SSH免密登陆

    内容和Linux 搭建 Hadoop集群--Jdk配置相关联 三台虚拟机的操作 Linux SSH免密登陆: 参考网址:http://www.cnblogs.com/999-/p/6884861.ht ...

  5. ssh免密登陆及时间设置

    1.ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa // 在自己主机生成私钥和公钥 2.scp id_rsa.pub centos@s201:/home/centos ...

  6. SSH免密登陆配置过程和原理解析

    SSH免密登陆配置过程和原理解析 SSH免密登陆配置过很多次,但是对它的认识只限于配置,对它认证的过程和基本的原理并没有什么认识,最近又看了一下,这里对学习的结果进行记录. 提纲: 1.SSH免密登陆 ...

  7. [提供可行性脚本] RHEL/CentOS 7 多节点SSH免密登陆

    实验说明: 在自动化部署时,会经常SSH别的机器去操作,然而每次的密码认证却很令人烦躁,尤其是很长的密码,因此SSH免密登陆就显得必不可少: 在机器数目很多的时候,使用更过的往往是Ansible分发并 ...

  8. 使用rsync基于ssh免密登陆进行备份或目录同步

    日常工作中有很多的备份工作,rsync是一个很不错的工具,尝试使用基于ssh免密登陆的方式进行备份,测试成功,是可行且方便的方法,撰文记之,以备后用: 1.A主机root用户对B主机root用户做ss ...

  9. 【Linux】ssh-copy-id三步实现ssh免密登陆

    一.本地机器上使用ssh-keygen产生公钥私钥对 ssh-keygen -t rsa -C "XXXX@163.com" --->执行完会在~/.ssh/下生成公钥私钥对 ...

随机推荐

  1. Educational Codeforces Round 87 (Rated for Div. 2)

    比赛链接:https://codeforces.com/contest/1354 A - Alarm Clock 题意 一个人要睡够 $a$ 分钟,一开始睡 $b$ 分钟后闹钟响铃,之后每次设置 $c ...

  2. hdu-6699 Block Breaker

    题意: 就是给你一个n行m列的矩形,后面将会有q次操作,每次操作会输入x,y表示要击碎第x行第y列的石块,当击碎它之后还去判断一下周围石块是否牢固 如果一个石块的左右两边至少一个已经被击碎且上下也至少 ...

  3. Redis性能指标监控

    监控指标 •性能指标:Performance•内存指标: Memory•基本活动指标:Basic activity•持久性指标: Persistence•错误指标:Error 性能指标:Perform ...

  4. 逆元 exgcd 费马小定理 中国剩余定理的理解和证明

    一.除法取模逆元 如果我们要通过一个前面取过模的式子递推出其他要取模的式子,而递推式里又存在除法 那么一个很尴尬的事情出现了,假如a[i-1]=100%31=7 a[i]=(a[i-1]/2)%31 ...

  5. 杭电多校HDU 6579 Operation (线性基 区间最大)题解

    题意: 强制在线,求\(LR\)区间最大子集异或和 思路: 求线性基的时候,记录一个\(pos[i]\)表示某个\(d[i]\)是在某个位置更新进入的.如果插入时\(d[i]\)的\(pos[i]\) ...

  6. HDU 4511 小明系列故事——女友的考验 (AC自动机 + DP)题解

    题意:从 1 走到 n,要求所走路径不能出现给定的路径,求最短路 思路:因为要求不能出现给定路径,那么我可以求助ac自动机完成判断. 我们可以在build的时候标记哪些路径不能出现,显然下面这种表示后 ...

  7. MQTT 协议 部分细节

    这里不纪录协议文档中大部分通用内容主要记录一下自己比较困惑的细节处理机制.主要有如下几个点: 连接时的具体细节行为? client 在连接到broker时同时指定自己的keepaliveTime和 w ...

  8. 事件循环 EventLoop(Promise,setTimeOut,async/await执行顺序)

    什么是事件循环?想要了解什么是事件循环就要从js的工作原理开始说起: JS主要的特点就是单线程,所谓单线程就是进程中只有一个线程在运行. 为什么JS是单线程的而不是多线程的呢? JS的主要用途就是与用 ...

  9. 如何在 VSCODE 中高效使用 R 语言

    VSCODE 配置 R 一.功能特性展示 之前一直在用 Rstudio 来编写 R,也尝试用过 Pycharm 配置 R 环境. 但是由于现在需求要同时满足 Python,R 和网站要同时开发,为了避 ...

  10. fullstack web projects in action

    fullstack web projects in action web 全栈项目实战 Angular 全栈 Angular + TypeScript + Nest.js + PostgreSQL + ...