原文链接:https://foochane.cn/article/2019061601.html
原文链接:https://rumenz.com/rumenbiji/linux-keygen.html
ssh 无密码登录要使用公钥与私钥。Linux下可以用用ssh-keygen生成公钥/私钥对。
我们想通过ssh访问github或者gitee的时候,都需要用Git生成密钥,对应的的命令是:
ssh-keygen 用于 OpenSSH 身份验证密钥的生成、管理和转换,它支持 RSA 和 DSA 两种认证密钥。
在日常使用中,可能会出现拥有多个平台的账号的情况。例如:github、gitee、私有git等
ssh是记录你密码信息的, 没有登录过root (或是没有执行过ssh-keygen命令),是没有.ssh 文件夹的
用OpenSSH的人都知ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。
有时候我们的代码仓库时使用 ssh 方式,那就必须要配置 ssh 之后才能 clone pull push .... SSH 协议可以实现安全的免密认证,且性能比 HTTP(S) 协议更好
经常在服务器程序(脚本)里面,或在命令行中,执行ssh,scp命令,会碰到要求密码的情况,很不方便!
SSH( Secure Shell ,安全外壳协议 )命令是openssh套件中的客户端连接工具,采用了非对称加密算法aymmetric encryption algorithm实现安全的远程登录服务器;
提示输入 passphrase,每次与 GitHub 通信都会要求输入 passphrase,以避免某些「失误」,建议输入 这里有个问题需要注意,那就是当你在这里输入密码,以后在连接 gitHub 去 push 代码的时候都需要输入密码,非常蛋疼,所以在这里最好直接回车过即可,不用输入密码。**()**
Linux Shell 的自动交互在很多场景下会使用到,比如我们需要批量运行一些需要输入参数进行交互的命令时,此时 Shell 的自动交互就能将我们从重复无聊的手动交互中解放出来。
在工作中,我们可能需要将代码推送到公司内部的自建 Git 代码托管平台(如 GithLab)。与此同时,日常开发过程中,我们也常常需要将代码提交到社区的 Git 代码托管平台(如 Github 等)。提交到 github 又需要管理多个 github 账号
今天在启动sshd时,出现了如下问题,导致客户端不能成功连接服务端,不能建立ssh连接:
命令:ssh-keygen -t rsa -C "youremail@youremail.com" 例如:ssh-keygen -t rsa -C "wanwan5856@163.com" 注解: Enter file in which to save the key 输入保存秘钥的文件 直接enter即可 Enter passphrase (empty for no passphrase) 输入密码 直接enter即可 此时查看.ssh目录下可看到新增的一对秘钥id_rsa和id_rsa.pub
Ssh,scp自动登陆方法 ########################### A为本地主机(即用于控制其他主机的机器) ; B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110; A和B的系统都是Linux 在A上运行命令: # ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码) # ssh root@192.168.60.110 "mkdir .ssh; chmod 0700 .ssh" (需要输入密码) # scp ~/.ssh/id_rsa.pub root@192.168.60.110:.ssh/id_rsa.pub (需要输入密码) 在B上的命令: # touch /root/.ssh/authorized_keys2 (如果已经存在这个文件, 跳过这条) # cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys2 (将id_rsa.pub的内容追加到 authorized_keys2 中) 回到A机器: # ssh root@192.168.60.110 (不需要密码, 登录成功) 如果能保护好自己的私钥, 这种方法相对在shell上输入密码, 要安全一些 ############################################## 深入一点点: 从表面上简单的理解一下登录的过程, 首先 ssh-keygen -t rsa 命令生成了一个密钥和一个公钥, 而且密钥可以设置自己的密码,可以把密钥理解成一把钥匙, 公钥理解成这把钥匙对应的锁头,把锁头(公钥)放到想要控制的server上, 锁住server, 只有拥有钥匙(密钥)的人, 才能打开锁头, 进入server并控制,而对于拥有这把钥匙的人, 必需得知道钥匙本身的密码,才能使用这把钥匙 (除非这把钥匙没设置密码), 这样就可以防止钥匙被人配了(私钥被人复制) 当然, 这种例子只是方便理解罢了, 拥有root密码的人当然是不会被锁住的, 而且不一定只有一把锁(公钥), 但如果任何一把锁, 被人用其对应的钥匙(私钥)打开了, server就可以被那个人控制了 所以说, 只要你曾经知道server的root密码, 并将有root身份的公钥放到上面, 就可以用这个公钥对应的私钥"打开" server, 再以root的身分登录, 即使现在root密码已经更改! 如果想控制n个机器, 那就需要n对钥匙(密钥和公钥), ssh-keygen 命令可以随意更改钥匙对的名字, 比如: [root@wwy .ssh]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa_192.168.102.12 ...... 这样私钥和公钥的名字分别就是: id_rsa_192.168.102.12 和 id_rsa_192.168.102.12.pub 然后将 id_rsa_192.168.102.12.pub 文件的内容, 追加到sever的 ~/.ssh/authorized_keys2 文件中, 最后, 在本地用ssh命令的 -i 参数指定本地密钥, 并登录: # ssh -i /root/.ssh/id_rsa_192.168.102.12 192.168.102.12 如果密钥设置了密码, 就用密钥的密码登录, 没设密码, 就直接登录进去了 scp也是一样的 如: scp -i /root/.ssh/id_rsa./xxx 192.168.102.158:/home/wwy/bak
Host github.com HostName github.com User git #默认就是git,可以不写 IdentityFile ~/.ssh/id_rsa.github
对于 Hadoop 的伪分布式和全分布式而言,Hadoop 的名称节点(NameNode)需要启动集群中所有机器的 Hadoop 的守护进程,这个过程可以通过 SSH 登陆来实现。Hadoop 并没有提供 SSH 输入密码登陆的形式,因此为了能够顺利登陆每台机器,需要将所有机器配置为名称节点可以无密码登陆的形式。
SSH 默认采用密码登录,这种方法有很多缺点,简单的密码不安全,复杂的密码不容易记忆,每次手动输入也很麻烦。密钥登录是更好的解决方案。
FROM centos:7 MAINTAINER huangat RUN yum -y update&&yum -y install passwd openssl openssh-server openssh-clients RUN mkdir -p /var/run/sshd/ RUN sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
目录 Core Linux折腾(一)[一] Core Linux折腾(一)[二] Core Linux折腾(二) Core Linux折腾(三) Core Linux 操作文档(一) 上一部分我们安装好CoreLinux以后,接下来我们就要开始实施如何远程连接我们的Core Linux了。 首先输入 tce-load -wi openssh 安装完毕以后,我们打开用户文件 vi /etc/passwd 在其中加上 sshd:x:74:74:Privilege-separated SSH:/va
SSH 为 Secure Shell的缩写,由 IETF 的网络小组(Network Working Group)所制定;它是建立在应用层基础上的安全协议。
ssh 公钥认证是ssh认证的方式之一。通过公钥认证可实现ssh免密码登陆,git的ssh方式也是通过公钥进行认证的。
新安装 git 跳过。 若之前对 git 设置过全局的 user.name 和 user.email。(用 git config --global --list 进行查看你是否设置) 必须删除该设置 git config --global --unset user.name "你的名字" git config --global --unset user.email "你的邮箱"
首先在client上建立public key和private key,需要使用ssh-keygen命令
转载请注明:noahsnail.com 在Git使用中经常会碰到多用户问题,例如:你在公司里有一个git账户,在github上有一个账户,并且你想在一台电脑上同时对这两个git账户进行操作,此时就需要进行git多用户配置。 首先配置不同的SSH KEY,使用ssh-keygen命令产生两个不同的SSH KEY,进入.ssh目录:
密钥(key)是一个非常大的数字,通过加密算法得到。对称加密只需要一个密钥,非对称加密需要两个密钥成对使用,分为公钥(public key)和私钥(private key)。
GitHub 改变了他们的安全协议,不再允许使用使用 SHA-1 加密算法的 RSA 密钥进行访问,而我目前使用 ssh 默认策略生成的就是这种类型的密钥,结果就是无法提交代码。
ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。我在上面列出的情况,就是这种情况。
但是,SSH 还有第三种登录方法,那就是证书登录。很多情况下,它是更合理、更安全的登录方法,本文就介绍这种登录方法。
1. 在 local 上运行 ssh-keygen -t rsa 在 /root/.ssh 下生成 id_rsa 和 id_rsa.pub 两个文件
ssh-keygen -t rsa //可以生成密钥,然后将公钥添加到仓库设置里面就可以直接用命令行git clone pull push....使用了。
SSH的英文全称是Secure SHell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
在 ~/.ssh 目录下新建一个 config 文件,添加如下内容(其中 Host 和 HostName 填写 git 服务器的域名,IdentityFile 指定私钥的路径)
如前所述,许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有操作系统上都是相似的。 首先,你需要确认自己是否已经拥有密钥。 默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。 进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥:
可能出现问题: - 1. SSH生成id_rsa, id_rsa.pub后,连接服务器却报:Agent admitted failure to sign using the key错误.
打开Git Bash,输入命令:ssh-keygen -t rsa -C "youremail@example.com
当前很多公司都选择git作为代码版本控制工具,然后自己公司搭建私有的gitlab来管理代码,我们在clone代码的时候可以选择http协议,当然我们亦可以选择ssh协议来拉取代码。但是网上很少找到如何用git客户端生成ssh key,然后配置在gitlab,我当时在做的时候苦于摸索,后来终于找到了解决方案,那么本文,我们就来聊一聊如何本地git客户端生成ssh key,然后配置在gitlab里,而后使用ssh协议进行提交和拉取git远程仓库的代码。
linux下生成key 使用public/private key让putty(ssh)自动登录(以及linux上使用密钥做ssh自动登陆) 方法一:使用puttygen.exe 第一步:生成密匙 运行puttygen.exe,选择需要的密匙类型和长度,使用默认的SSH2(RSA),长度设置为1024就可以了。 passphrase可以为空,免得登录时还是要输入一次密码。 点击Save private key 按钮保存公匙和私匙,例如key.ppk,public key不用保存,以后使用Puttyg
码云Gitee.com地址:https://gitee.com/zhenqi/qiucodeBlog
领取专属 10元无门槛券
手把手带您无忧上云