mac本身安装了ssh服务,默认情况下不会自启
SSH服务的启动和关闭
1、启动sshd服务:
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
2、关闭sshd服务:
$ sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
3、查看是否启动:
$ sudo launchctl list | grep ssh
如果看到下面的输出表示成功启动了:
- 0 com.openssh.sshd
生成ssh key
第一步
先检查本地是否有git,输入:git version,有则会返回版本号。如下:
第二步
执行:cd ~/.ssh 进入.ssh文件目录下,如果之前没有生成过ssh key,会提示找不到,不用慌,也不需要手动创建。
cd: no such file or directory: /Users/dianchou-ios/.sssh
如果已有.ssh文件,执行:ls 查看目录下的文件,如果已有id_rsa和id_rsa.pub两个文件,你可以忽略下面的步骤了,直接拿id_rsa.pub文件内的公钥使用即可(注意:是文件内所有的内容,不用自行删减)
第三步
执行:ssh-keygen -t rsa -C "email@xxx.com",其中xxx填写自己的邮箱。
这时候会提示:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/dianchou-ios/.ssh/id_rsa):
询问你是否自定义文件名,如果不填,秘钥默认存储在is_rsa文件中。
之后会提示你保存.ssh/id_rsa文件路径,直接enter即可(.ssh会自动帮你创建)
Created directory ‘/Users/xxx/.ssh’.
Enter passphrase (empty for no passphrase):
接着会提示你设置密码:(看你心情,我一般直接回车)
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
成功会提示:
命令解释:
-C:提供一个新注释,在.pub公钥文件中结尾显示。
-f:指定密钥文件名,如果没有指定,在执行命令时会提示
"Generating public/private rsa key pair.
Enter file in which to save the key (/Users/dianchou-ios/.ssh/id_rsa): "。
-t:指定密钥类型,包括 RSA 和 DSA 两种密钥(如果没有指定则默认生成用于SSH-2的RSA密钥)。
第四步
执行:ssh-add ~/.ssh/id_rsa,这时候会提示输入密码,输入刚刚设置的密码即可,成功提示:
Identity added: /Users/XXX/.ssh/id_rsa (email@XXX.com)
第五步
举例:要提交到GitHub,在GitHub的settings中找到SSH Key的配置,输入id_rsa.pub文件的内容(公钥)。
执行命令:ssh git@github.com 或 ssh -T git@github.com,会提示:
The authenticity of host 'github.com (13.229.188.59)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
选择yes,成功则提示:
Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
如果失败会提示
Warning: Permanently added 'github.com,13.229.188.59' (RSA) to the list of known hosts.
可以先执行:eval "$(ssh-agent -s)",然后在执行ssh git@github.com 或 ssh -T git@github.com 就可以了。
命令解释:
-T:禁止分配伪终端
第六步
成功后,在.ssh文件下会生成一个known_hosts文件:记录每个你访问过计算机的公钥(public key),查看即可。
网友评论