可以在本机(Mac)或是目标服务器上使用下面的命令生成一对秘钥。生成的秘钥对会保存在当前用户目录下的.ssh文件夹中。以.pub为后缀名的文件是公钥,另一个没有后缀名的是私钥。生成过程中需要设置一个私钥密码,也可以直接回车不输密码,相当于不设置密码。
xxxxxxxxxx#生成密钥对ssh-keygen有了秘钥对,需要将公钥安装到目标服务器,私钥留在本机作为“钥匙”使用。键入以下命令,在服务器上安装公钥:
xxxxxxxxxx#进入目标服务器当前用户的.ssh文件夹cd ~/.ssh#安装公钥(这句命令的意思是将id_rsa.pub中的内容追加到authorized_keys文件中)cat id_rsa.pub >> authorized_keys如此便完成了公钥的安装。为了确保连接成功,请保证以下文件权限正确:
xxxxxxxxxxchmod 600 authorized_keyschmod 700 ~/.ssh编辑 /etc/ssh/sshd_config 文件,进行如下设置:
xxxxxxxxxxRSAAuthentication yesPubkeyAuthentication yes
另外,请留意 root 用户能否通过 SSH 登录:
xxxxxxxxxxPermitRootLogin yes
当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录(非必须):
xxxxxxxxxxPasswordAuthentication no
最后,重启 SSH 服务(不行就重启):
xxxxxxxxxxservice sshd restart这里有两种方法:
xxxxxxxxxx# -p:指定端口号,-i:指定私钥文件,chaofan是用户名,chaofan.ddns.net是服务器地址,也可以是IPssh -p 8122 -i /Users/chaofan/.ssh/id_ed25519 chaofan@chaofan.ddns.net也可以把以上命令设置一个别名,能够更方便的使用。编辑Mac当前用户目录下的.zshrc文件,输入以下内容并保存,以后打开终端,直接输入fn,回车即可连接SSH。
xxxxxxxxxxalias fn="ssh -p 8122 -i /Users/chaofan/.ssh/id_ed25519 chaofan@chaofan.ddns.net"使用以下命令在Mac的.ssh文件夹下新建一个config文件
xxxxxxxxxxtouch ~/.ssh/config编辑该文件,输入以下内容并保存,以后打开终端,直接输入ssh fn,回车即可连接SSH。
xxxxxxxxxxHost fn # 给服务器ip起一个别名Hostname chaofan.ddns.net # 服务器ipUser chaofan # 服务器用户名Port 8122 # 服务器端口IdentityFile ~/.ssh/id_ed25519 # 密钥
也可以输入sftp fn连接SFTP。说几个常用命令:
ls:查看远程文件列表
cd:切换远程目录
lcd:切换本地目录
get [远程文件]:下载远程文件
put [本地文件]:上传本地文件