当前位置: 首页 > Linux

linux下ssh公钥认证和远程登录的设置_0

时间:2023-04-06 04:25:07 Linux

本人使用linux有一段时间了,最??近在服务器上搭建了一个git仓库。每次提交都要用密码,很反人类,所以特意研究了一下如何使用sshkeys登录服务器。公钥和私钥的生成ssh-keygen命令专门用于生成密钥。这个命令有很多选项,这里列出最基本的四个:-t用于指定密钥类型(dsa|ecdsa|ed25519|rsa|rsa1);-P用于指定密码-f用于指定生成的密码密钥文件名-C用于添加注释。ssh-keygen-trsa-P123456-fhost-C'myhostkey'意思是新建一个密钥,密码为123456,文件名为myhostkey。该命令会生成host和host.pub两个文件,前者是私钥文件,后者是公钥文件。如果您想免密码登录,请将密码设置为空。将公钥部署到服务器上一步生成公钥和私钥后,需要将公钥部署到服务器,并使用私钥登录。所以首先你需要将创建的公钥上传到服务器。使用scp或您的工具将公钥上传到服务器并将文件内容附加到~/.ssh/authorized_keys。例如:#在本机执行此命令,上传公钥scp-Pyour_porthost.pubuser@hostname:/tmp#在服务器执行此命令,appendtoauthorized_keyscd/tmp&&cathost.pub>>~/.ssh/authorized_keys#Changepermissionchmod600~/.ssh/authorized_keys更改服务器配置打开/etc/ssh/sshd_config文件,开启如下配置:RSAAuthenticationyesPubkeyAuthenticationyesAuthorizedKeysFile.ssh/authorized_keysrestartsshd,servicesshdrestartorsystemctlrestartsshd。服务。重启后,服务器已经支持远程ssh连接连接服务器。我使用ssh命令远程连接到服务器。通过ssh-pyour_portusername@domain-iyour_private_certification命令,可以连接到服务器。如果您通过xshell或putty连接,只需导入您的私钥并连接。其他如果只想让服务器通过公钥和私钥连接到服务器,可以将服务器配置文件/etc/ssh/sshd_config中的PasswordAuthenticationyes修改为PasswordAuthenticationNo,但不要关闭当前连接重启sshd时,确认可以通过私钥连接到服务器,然后才能关闭。否则,一旦私钥连接不上,密码连接方式再次被禁用,恐怕你就要和你的服务器说再见了。