TortoiseGit使用密钥连接服务器

git是个好东西,tortoisegit也是个好东西。在Windows下使用tortoisegit用的比较多,而对命令行的时候比较少。

对于tortoisegit可以支持使用密钥有两种,一种是支持openssh的密钥,一种是支持putty的密钥。但是这两种不同,对于Linux的ssh一般都使用openssh,但是没关系,我们可以转换。


使用putty的密钥:

1、在安装TortoiseGit的时候其实会让你选择默认使用的ssh客户端,默认情况下是使用TortoiseGitPlink这个客户端。

2、在安装tortoisegit的时候,默认还会安装有Puttygen.exe这个程序,这个程序是可以生成putty密钥的。

3、点击Generate按钮后会按一个进度条,然后鼠标不断在该程序内动,目的是生成一些随机数。

4、点击save private key保存putty的私钥,putty的密钥的后缀名是ppk。


在服务器上添加openssh公钥:

我们在上面创建了putty的密钥对,现在需要将生成的公钥添加到服务器上。

也可以把公钥添加到github.com上,putty生成的公钥是和openssh的的公钥是相同的,他们只是私钥不同 。

注意:公钥在authorized_keys的文件形式是一行一个公钥,切记。否则该公钥不起作用。


在tortoisegit上使用密钥:

在git clone的时候使用,勾选load putty key,选择刚刚保存的putty私钥,这样就可以搞定了。


putty密钥与openssh密钥转化:

如果你有putty的私钥了,但是想在ssh客户端下使用openssh的私钥,再去生成一个openssh的密钥对比较麻烦

1、点击Conversions菜单项中的Import key

2、选择一个putty的私钥或者openssh的私钥

3、点击save private key保存为putty的私钥

4、或者点击菜单Conversions->Export OpenSSH Key保存为openssh的私钥


SSH登录一直失败:

如果SSH登录一直失败,看看是否权限会有些问题?

输入ssh连接代码

ssh -i private.key -v [email protected].com -p22

从连接的信息中看不出有什么问题。

debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering public key: private.key
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: password

已经提示说了,使用公钥登录,并且提供了私钥,但是还是提示让我输入密码。

但是我使用另外一个帐号去登录,发现是ok的,可以登录成功。我把成功的那个authorized_keys复制到我的那个用户名下,发现还是不能登录。但是验证了服务器的sshd功能是正常运行的,否则另外一个账户就没办法登录了。我觉得两个用户名的所在的环境应该是相同了,但是确实无法登录。

想到了客户端这里的连接没有更多有效的信息,那就想到了去服务器上看看相关的信息。vim /var/log/secure查看一下日志。发现有这么一段话:

Authentication refused: bad ownership or modes for directory /home/user/.ssh

上网搜了一下这个问题,发现原来是.ssh的目录权限不对,设置一下正确的权限:

chmod 700 ~/.ssh

在此过程中还学习到了一个sshd的测试模式。

/usr/sbin/sshd -p 10022 -d
     -d     以调试模式运行。服务器将在前台运行并发送非常详细的调试日志信息,
            服务器将只允许接入一个连接,并且不派生出子进程。仅用于调试目的。
            使用多个 -d 选项可以输出更详细的调试信息(最多3个)。

会开启一个sshd的调试模式,新建一个10022端口,在客户端连接这个端口的时候,服务器端会有debug日志输出在屏幕上,这个时候就可以查看详细的信息。然后再针对信息进行解决。

总结:

服务器用户对于ssh目录权限有一些权限要求,权限不对的话ssh无法工作,建议以下权限作为最小的权限。

chmod 700 .ssh          # chmod 755 .ssh 也是可以的
chmod 600 .ssh/authorized_keys
chmod 400 .ssh/private.key  #把密钥的权限也设置为最小

终于又可以愉快的编程了。

时间: 2024-10-08 20:39:57

TortoiseGit使用密钥连接服务器的相关文章

【WinSCP】WinSCP 5.x使用密钥连接服务器

在WinSCP 4.x中,主页面有一个添加密钥文件的选项,如下图所示 但是在WinSCP 5.x中主界面发生了很大的变化 在主页上没有了载入密钥文件的选项,那么我们应该怎么使用密钥验证呢? WinSCP 5.x集成了Pageant用于密钥验证,我们点击 工具->运行Pageant(P),然后在桌面右下角的通知区域我们会看到Pageant的图标 我们右击Pageant的图标,找到 Add Key选项,就可以加载我们的密钥文件了

RSA加密算法和SSH远程连接服务器

服务器端与客户端的密钥系统不一样,称为非对称式密钥系统 RSA算法的基础是模运算x mod n,事实上: [(a mod n) + (b mod n)] mod n = (a+b) mod n [(a mod n) - (b mod n)] mod n = (a-b) mod n [(a mod n) * (b mod n)] mod n = (a*b) mod n 因此有(a mod n)^d mod n = a^d mod n 报文/信息(message)其实仅仅是一个比特模式(bit pa

python paramiko模块:远程连接服务器

1.  SFTP基于 用户名密码 登录服务器,实现上传下载: import paramiko transport = paramiko.Transport(('hostname', 22)) # 生成trasport,配置主机名,端口 transport.connect(username='root',password='****') # 登录名.密码 sftp = paramiko.SFTPClient.from_transport(transport) # 将id_rsa 上传至服务器并重命

SqlServer中创建Oracle连接服务器

转自太祖元年的:http://www.cnblogs.com/jirglt/archive/2012/06/10/2544025.html参考:http://down.51cto.com/data/910072SqlServer中创建Oracle连接服务器 第一种:界面操作 (1)展开服务器对象-->链接服务器-->右击“新建链接服务器”(2)输入链接服务器的IP (3)链接成功后 第二种:语句操作 注:需要提前安装Oracle客户端程序,重启机器.(如果没有Oracle客户端程序,提示“未找

fb远程连接服务器调试,碉堡了

开发中经常碰到本地代码没问题,上传到服务器上就有有问题, 这个时候调试变的很麻烦,放个textField自己保存日志这种方式调试的都是. 今天刚学了远程连接服务器,adobe真是牛逼坏了啊. 新增一个web应用程序,使用默认值对勾取消,输入http:// f11调试,跟本地调试一样,日志也会打印到fb的控制台上.

使用paramiko如何连接服务器?

本文和大家分享的是python开发中使用paramiko连接服务器的方法和步骤,希望通过本文的,对大家学习和使用paramiko有所帮助. ssh连接步骤 1.ssh server建立server public key,对应文件/etc/ssh/ssh_host_*文件 首先是有一个ssh的服务器,它建立了一些公匙,然后放在本地的文件中. 2.ssh client发出连接请求 这个ssh的client它发出连接请求 3.ssh server发送server public key给ssh clie

使用远程连接工具SecureCRT连接服务器

下载安装SecureCRT并不难,这里给出一个含注册机的连接: http://download.csdn.net/download/u013636868/9505291 参考readme.txt里面的破解方法操作即可. 我们这里只介绍如何使用SecureCRT连接服务器. 1.打开SecureCRT,输入登录密码,点击OK 2.右键单击左侧面板中的"Session",选择New Session,单击下一步 3.设置连接参数,下一步 4.给会话设个好记的名字,相关描述,完成 5.双击Se

使用远程连接工具Xshell连接服务器

1.下载安装Xshell,安装完成后打开 2.打开"文件"--"新建"会话,设置服务器IP等相关连接参数,确定 3.选中刚才新建的会话"centos 6.5 (2)","连接" 4.填写"用户名",勾选"记住用户名",确定 5.填写用户"密码",勾选"记住密码",确定 6.连接服务器成功 玩的开心!

Android客户端通过Socket连接服务器

Android客户端通过Socket连接服务器. Android互联网项目中,绝大部分都有连接远程服务器的需求,连接的方式有多种,可以是TCP的方式,当然也可以通过Socket的方式. 相对于TCP的方式,Socket的方式略显的较为原始,对于客户端来说,复杂度反而比TCP的方式还要高一些,毕竟TCP的连接有现成的框架可以使用, 比如Spring等. 而使用socket方式这些工作完全需要客户端来做,也增加了客户端的工作量,不过凡事有利弊,通过socket的方式,流量上 相对于TCP等的方式更加