多个ssh帐号

方法0:修改/.ssh/.bash_profile

增加:

eval `ssh-agent`
ssh-add /root/.ssh/vt_download

是修改立即生效:source .bash_profile

方法1:每次手动利用ssh-agent bash+ssh-add 私钥路径 或nohup ssh-add 私钥路径

方法2:修改/etc/sshd/ssh.confg文件,使IdentityFile 私钥路径生效

方法3:使用ssh的配置文件可以在很大程度上方便各种操作,特别适应于有多个ssh帐号、使用非标准端口或者写脚本等情况。

man ssh_config

可以查看手册

如果之前是用密码方式来登录ssh,需要先改用证书方式。可以看最后面生成SSH证书

配置文件

用户配置文件在~/.ssh/config,没有的话新建一个。基本的写法是

Host 名称(自己决定,方便输入记忆的)
    HostName 主机名
    User 登录的用户名
    IdentityFile 证书文件路径

两个SSH帐号,一个是github的,一个是其他服务器的,证书文件正如其名,那么可以这样写

Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/github

Host server
    HostName 服务器地址
    User 登录用户名
    IdentityFile ~/.ssh/server

注意,github的Host必须写成”github.com”。你可以会有其他要求,比如指定端口号、绑定本地端口,这些都可以通过man来查询,比如

Port 端口号
DynamicForward 本地端口号

如果服务器同时有ipv4/ipv6地址,HostName使用域名会比较方便

使用

有了这些配置,很多操作就非常简化了。比如登录服务器

ssh server

传输文件

scp server:~/test . 

如果使用Putty等工具,可能需要一些其他操作(转换私钥格式,貌似),自行搜索吧

生成SSH证书

登入服务器端,生成密钥(你使用哪个用户名登录,就在哪个用户名下生成)

ssh-keygen -t rsa

会询问将密钥放在何处,默认即可。然后是输入密码,留空(否则你登录不仅需要私钥还要输入密码)。

完成后在~/.ssh目录下会生成另个文件id_rsa、id_rsa.pub,一个私钥一个公钥。接着执行

cd ~/.ssh
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys

再将id_rsa取回本地,放入~/.ssh并将权限设为400。

服务器端,删掉这两个文件,并修改sshd配置。编辑/etc/ssh/sshd_config如下

PubkeyAuthentication yes
PasswordAuthentication no

之后重启sshd服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值