首页>>互联网>>大数据->ssh免登录应该这样配置

ssh免登录应该这样配置

时间:2023-11-29 本站 点击:1

场景

经常使用Git工具后者登录服务器的小伙伴肯定都会配置ssh免登录,这样技能提升效率,又安全,本文就讲一下配置ssh免登录相关的工作。

本文以Mac为例,Windows环境大同小异

相关文件

ssh的配置,存储在用户目录的.ssh隐藏文件夹下 cd ~/.ssh && ls -a 查看目录会看到几个文件

id_rsa

id_rsa_pub

config(如果没有,请手动创建)

known_hosts(如果没有,请手动创建)

id_rsa是私钥,始终存储在本机设备上, id_ras_pub是和私钥对应的公钥,通常配置到远程仓库或者远程服务器上,github和gitlab等在设置中都可以找到ssh配置方法

config是用来管理多个公私钥对与不同服务对配置关系,长下面这个样子

Host github.comHostName github.comPreferredAuthentications publickeyIdentityFile ~/.ssh/id_rsa

known_hosts里面记录的是每次通过ssh链接到远程服务或git服务时,使用的公钥信息,下次成功连接时就会写入公钥信息,当远程的公钥发生改变,和known_hosts文件中不匹配就会提示 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

设置ssh免登录

生成秘钥对

ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM" -f ~/.ssh/gitee

-t 指定密钥类型,默认是 rsa ,可以省略。 -C 设置注释文字,比如邮箱。 -f 指定密钥文件存储文件名。

名字默认为id_rsa和id_rsa.pub 这里强烈建议通过-f参数,修改为对应的平台,例如github,gitlab,gitee等

执行后一直按回车键确认即可,最后出现下面内容即成功

Generating public/private rsa key pair.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /Users/peakj/code_space/mess/testYour public key has been saved in /Users/peakj/code_space/mess/test.pubThe key fingerprint is:SHA256:OuHLjibJ7GQ35n4gY8rpANSEWknCZetjKSCz8S4OwCk YOUR_EMAIL@YOUREMAIL.COMThe key's randomart image is:+---[RSA 3072]----+|o.+=             || +* .            ||*o o             ||*=o .            ||E+.=  . S        ||+.* o. o         ||===++.+          ||=*=+.+.o         ||.+.++o+          |+----[SHA256]-----+

然后执行cat gitee.pub打印出公钥内容,复制粘贴到对应的平台即可

配置域名和私钥对应关系

# giteeHost gitee.comHostName gitee.comPreferredAuthentications publickeyIdentityFile ~/.ssh/gitee

Host #域名,可以是IP地址

HostName #域名名称

PreferredAuthentications publickey #默认值,不需要修改

IdentityFile ~/.ssh/gitee #匹配本地的私钥文件

我的配置:

# githubHost github.comHostName github.comPreferredAuthentications publickeyIdentityFile ~/.ssh/id_rsa# gitlabHost git.100tal.comHostName git.100tal.comPreferredAuthentications publickeyIdentityFile ~/.ssh/gitlab_rsa# giteeHost gitee.comHostName gitee.comPreferredAuthentications publickeyIdentityFile ~/.ssh/gitee

ssh目录下的文件:

├── config├── gitee├── gitee.pub├── gitlab_rsa├── gitlab_rsa.pub├── id_rsa├── id_rsa.pub├── known_hosts

测试ssh(以gitee为例)

ssh -T git@gitee.com

如果出现Hi USERNAME! You've successfully authenticated, but github does not provide shell access.说明配置成功

如果出现Permission denied (publickey)说明权限有问题,检查config文件是否有名称或者路径错误,或者公钥是否正确配置到远端服务

原文:https://juejin.cn/post/7094130082624569381


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/BigData/1259.html