富在术数不在劳身,利在局势不在力耕
自从1024的rsa被一致认为不安全以后,rsa就被其他的算法开始替代了,现在认为4096位的rsa才是安全的,现在新的ssh支持多种算法,其它算法相对rsa都比较短,所以很多人用其它算法,可以使用ssh-keygen --h 查看命令帮助
ssh-keygen --h
[-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]
主要支持的算法主要有上面几种,rsa推荐,个人目前用的较多的时ed25519
使用ssh-keygen
生成密钥,需要说明的是,这个命令在有openssh的设备上一般都可以用,也可以安装三方软件,比如git
,在windows中,安装过完git后,在安装目录找到usr/bin
文件夹,并将其加入到环境变量,就可以使用ssh-keygen
命令。同时git中还有一个好用的命令。
ssh-keygen -t ed25519
一直确定就行
完成后会在ssh目录下生成公钥ed25519.pub
和私钥ed25519
,其中私钥一定给要保存好,不要外泄。
ssh所在目录一般是当前登录的用户目录下,如果登录的是linux root用户就在root目录,如果是一般用户就在普通用户的home目录下,在windows中ssh在C:\Users\Admin\.ssh
下
在这一步中要使用git工具中的另一个命令ssh-copy-id
,这个命令只能在git的bash中使用,无法直接通过windows执行,可以使用组合键调用Shift + 鼠标右键
调出包含git bash的他弹出菜单,选择git bash
然后执行以下命令。
ssh-copy-id -i ed25519.pub user@host:port
其中user是登录服务器要用的用户名,host是ip或域名,port端口默认是22可以不写,如果不是22就需要特别指定。
在windows上,在用户的.ssh
文件夹中添加的config中添加配置文件,
Host 192.168.31.211
HostName 192.168.31.211
User user-name
# 私钥文件位置
IdentityFile C:\Users\Admin\.ssh\ed25519
至此就可以使用密钥免密登录了,在cmd中使用以下命令免密登录了
ssh user-name@192.168.31.211
github和gitee一样,都需要在本地先生成密钥对,然后将生成的公钥放到github设置中的ssh密钥管理中,添加完成后测试,用以下命令,不报错就表示密钥添加完成
ssh -T git@github.com
密钥登录失败可能是用户的文件夹权限错误导致的
chmod 755 /home/user
chmod 700 /home/user/.ssh
chmod 600 /home/user/.ssh/authorized_keys
chown user:user/home/user
chown user:user/home/user/.ssh
chown user:user/home/user/.ssh/authorized_keys
改完后sudo systemctl restart sshd
或者sudo service ssh restart
文章分类