ubuntu 生成 git ssh

Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。

github的SSH配置如下:

一 、

设置Git的user name和email:

$ git config –global user.name “xuhaiyan”

$ git config –global user.email “haiyan.xu.vip@gmail.com”

二、生成SSH密钥过程:
1.查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
2.生存密钥:

$ ssh-keygen -t rsa -C “haiyan.xu.vip@gmail.com”
按3个回车,密码为空。


Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
………………

最后得到了两个文件:id_rsa和id_rsa.pub

3.添加密钥到ssh:ssh-add 文件名
需要之前输入密码。
4.在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥。

打开https://github.com/ ,登陆xuhaiyan825,然后添加ssh。

5.测试:ssh git@github.com

The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘github.com,207.97.227.239′ (RSA) to the list of known hosts.
ERROR: Hi tekkub! You’ve successfully authenticated, but GitHub does not provide shell access
Connection to github.com closed.

三、 开始使用github
1.获取源码:

$ git clone git@github.com:billyanyteen/github-services.git

2.这样你的机器上就有一个repo了。
3.git于svn所不同的是git是分布式的,没有服务器概念。所有的人的机器上都有一个repo,每次提交都是给自己机器的repo
仓库初始化:

git init

生成快照并存入项目索引:

git add

文件,还有git rm,git mv等等…
项目索引提交:

git commit

4.协作编程:
将本地repo于远程的origin的repo合并,
推送本地更新到远程:

git push origin master

更新远程更新到本地:

git pull origin master

补充:
添加远端repo:

$ git remote add upstream git://github.com/pjhyett/github-services.git

重命名远端repo:

$ git://github.com/pjhyett/github-services.git为“upstream”

<think>好的,我现在需要帮助用户在Ubuntu Core系统上设置和使用SSH密钥。首先,我得回忆一下Ubuntu Core和普通Ubuntu的区别。Ubuntu Core是一个针对物联网和云环境的轻量级、安全强化版本,使用snap包管理,系统结构可能有所不同。因此,传统的SSH密钥配置方法可能需要调整。 用户提到的引用中有关于生成SSH密钥、配置Git使用密钥、以及密钥备份恢复的内容。比如引用3提到了用ssh-keygen生成密钥,引用2和5提到了ssh-add添加私钥,引用4提到在Docker容器内使用SSH密钥的问题,这可能与Ubuntu Core的容器化环境有关联? 首先,Ubuntu Core默认可能没有安装SSH服务器,或者访问权限受限。用户需要确认是否已安装openssh-server,但Ubuntu Core通常使用snap,可能需要通过特定方式启用SSH。比如,是否需要通过snap安装SSH服务?或者系统本身已经集成了SSH但需要配置? 接下来是生成SSH密钥。用户需要在Ubuntu Core上生成密钥对,使用ssh-keygen命令。根据引用3,命令是ssh-keygen -t rsa -C "注释",然后保存到.ssh目录。但要注意,Ubuntu Core的文件系统可能是只读的,或者.ssh目录需要手动创建,权限设置是否正确?比如,用户可能需要先创建~/.ssh目录,设置700权限,然后生成密钥,并确保私钥权限为600,公钥644,如引用5所述。 然后,将公钥添加到远程服务器的authorized_keys文件中。但如果是Ubuntu Core设备本身作为SSH服务器,用户需要将公钥添加到设备的~/.ssh/authorized_keys中。但Ubuntu Core可能使用不同的机制,比如通过snap配置或特定的用户账户管理。例如,引用1提到需要关联SSH密钥到Ubuntu账户,可能涉及Ubuntu SSO,用户可能需要使用ssh-import-id命令或者通过网页界面添加密钥? 另外,关于SSH代理,引用2和5提到使用ssh-add添加私钥到代理,避免每次输入密码。用户生成密钥后可能需要执行ssh-add ~/.ssh/id_rsa,并确保ssh-agent正在运行。 还有权限问题,引用5详细说明了恢复密钥时设置正确权限的步骤,比如chmod 700 ~/.ssh,chmod 600私钥等。在Ubuntu Core上同样需要注意这些权限设置,否则SSH会拒绝使用密钥。 可能的步骤总结: 1. 检查SSH服务是否已启用,必要时安装或配置。 2. 生成SSH密钥对,确保存储路径和权限正确。 3. 将公钥添加到目标位置(本地或远程服务器的authorized_keys)。 4. 配置SSH客户端使用私钥,可能使用ssh-agent。 5. 测试连接,处理可能的问题,如权限错误、服务未启动等。 需要验证这些步骤在Ubuntu Core上的适用性。例如,Ubuntu Core可能默认使用严格的安全策略,用户可能需要通过snap设置或使用官方文档推荐的方法配置SSH访问。此外,Ubuntu Core的用户账户管理可能不同,是否需要使用sudo或特定用户权限? 另外,引用4提到在Docker容器内配置SSH的问题,这可能与Ubuntu Core的容器化特性相关,但用户的问题是关于Ubuntu Core本身,可能不需要考虑Docker,除非用户是在Core上运行容器。 最后,用户可能遇到的问题包括:无法找到.ssh目录,权限错误,SSH服务未启动,密钥未正确关联到Ubuntu账户等。需要针对这些情况给出解决方案,并引用相关的参考资料中的步骤,如权限设置、ssh-add的使用等。</think>### 在 Ubuntu Core 上设置和使用 SSH 密钥的分步指南 #### 1. **启用 SSH 服务** - Ubuntu Core 默认使用 `snap` 管理服务。若需启用 SSH 服务,执行以下命令: ```bash sudo snap install core sudo snap start sshd ``` 若已安装但未启动,使用 `sudo snap restart sshd`[^1]。 #### 2. **生成 SSH 密钥对** - 在终端运行以下命令生成密钥: ```bash ssh-keygen -t rsa -C "your_email@example.com" ``` 按提示保存到 `~/.ssh/id_rsa`(默认路径),建议设置密码增强安全性[^3]。 #### 3. **配置密钥权限** - 创建 `.ssh` 目录并设置权限: ```bash mkdir -p ~/.ssh chmod 700 ~/.ssh ``` - 调整密钥文件权限: ```bash chmod 600 ~/.ssh/id_rsa # 私钥仅用户可读写 chmod 644 ~/.ssh/id_rsa.pub # 公钥可公开 ``` 权限错误会导致 SSH 拒绝连接[^5]。 #### 4. **关联公钥到 Ubuntu 账户** - 若需通过 Ubuntu SSO 认证,上传公钥至账户: 1. 复制公钥内容: ```bash cat ~/.ssh/id_rsa.pub ``` 2. 登录 [Ubuntu SSO](https://login.ubuntu.com/),在 **SSH Keys** 部分添加公钥[^1]。 #### 5. **配置 SSH 客户端使用密钥** - 将私钥添加到 SSH 代理(避免重复输入密码): ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa ``` 若使用非默认密钥名,需通过 `-i` 参数指定路径[^2][^5]。 #### 6. **测试 SSH 连接** - 连接到目标设备(如另一台 Ubuntu Core 设备): ```bash ssh username@hostname -i ~/.ssh/id_rsa ``` 若提示权限被拒,检查目标设备的 `~/.ssh/authorized_keys` 是否包含公钥。 --- ### 常见问题处理 - **SSH 连接失败** 检查服务状态:`sudo snap services sshd`,确保状态为 `active`。 - **密钥权限错误** 重新执行 `chmod 600 ~/.ssh/id_rsa` 并确认 `.ssh` 目录权限为 `700`[^5]。 - **跨设备同步密钥** 备份 `~/.ssh` 目录至安全位置,恢复时需保持权限一致[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值