SSH登录原理
SSH生成有两串密钥,一串是私钥,一串是公钥。
私钥用于解密,公钥用于加密。公钥是任何人都可以拥有的,私钥只有你自己能拥有。
通过私钥能够直接解密得到公钥,但是通过公钥却无法得到私钥,是一种单向的解密。
因此,你就可以通过SSH进行一个密钥认证的登录。远程登录就是将公钥放在服务器上,然后你可以使用私钥进行匹配登录。
SSH使用密钥代替了密码,但是现在为了保险起见,又将密钥进行了一次加密,需要一个密码才能使用这个密钥,更加的保险。
WinSCP和putty
winscp是一个文件传输工具,可以让你尽情的修改服务器的文件信息,而不用使用世界上最好的编辑器vim!
putty是一个远程连接的命令行工具。
winscp里面是集成了putty的,不过需要单独的下载。
这个是winscp的界面,上面的框里面就是在putty中打开当前会话,会帮你打开一个bash shell窗口,这样就可以输入命令了,和直接在linux里面没有区别。
生成ppk格式的私钥
因为putty只支持ppk格式的密钥,OpenSSH私钥与Putty不兼容,需要使用PuttyGen将其转换为Putty的私钥类型。或者你也可以直接使用puttygen生成ppk的ssh密钥。这个工具下载putty应该会附带的。
加载本地的rsa私钥,因为我这边好像之前登陆微软帐号的时候有生成过,所以就直接使用这个了,如果没有的话可以先生成一个。原来的格式是OpenSSh格式的。生成的ppk是putty的格式。
导入成功。
然后点击 save private key
保存为ppk格式私钥。
linux配置公钥
配置方法有很多种
手动配置公钥
根据你要登陆的用户,在对应的用户目录下的 .ssh文件夹下(没有.ssh文件夹就创建,然后在里面创建下面的 authorized_keys文件。这个就是保存当前用户的所有公钥,必须要是一行的。
统一就是 /user/.ssh/目录。
我是使用的root账号登陆的,root权限存在单独的一个目录root,目录为/root/.ssh/
。
其他用户在home下面对应的用户名文件夹下/home/username/.ssh/
。
将上面那串公钥信息复制到创建的文件里面,注意这里一个密钥只能存在一行,不能有换行!!!
保存文件就可以了。
WinSCP自动配置公钥
winscp的配置是会根据你当前登录的用户进行公钥的配置。
然后选择ppk格式的私钥,它会根据私钥自动配置公钥。
然后会跳出下面的信息框,说明已经配置好了。
腾讯云服务器自动配置公钥
因为我买的是腾讯云服务器,控制台里面可以直接配置,别的服务器应该也有对应的配置方法。
腾讯云服务器需要先关闭服务器,然后才能进行密钥的配置。
进入密钥列表,然后点击创建密钥。
使用已有的公钥。
这里就是需要复制公钥信息,注意格式。
然后确定,就会自己配置了。
两种方法配置私钥
如果你是使用winscp进行SSH登录,那么在登录putty时会自动读取当前的会话配置信息,能直接登录。如果你没有使用winscp,也可以直接使用putty进行SSH认证登录,下面我就分别介绍两种。
但是无论哪种都是需要使用ppk格式的密钥。
WinSCP配置私钥
新建站点,然后填好对应信息,不需要密码,因为已经有了公钥。
点击高级配置,进行ssh配置
确定就完成了,然后可以点击保存,保存当前的站点信息,下次可以直接登录。
putty单独配置私钥
打开putty应用程序进行配置。
1.主机和端口
配置你要连接的主机和端口(一般为22)。
2.登录用户
选择登录的用户
3.保存当前的配置信息
自己娶个名字然后save,之后的登陆就只需要load某个session然后open就可以了,不需要重复的配置。
root权限登录配置
如果遇到权限问题的报错,可以参考
root权限远程SSH登录报错?修改配置就可以了!