建立金钥
Ubuntu 系统网路 ssh 建立金钥指令
建立 ssh key
ssh-keygen -t rsa -b 4096 -C "kj@example.com"
变更 ssh port
开启设定档案
sudo vim /etc/ssh/sshd_config
找寻 Port 并变更
# What ports, IPs and protocols we listen for
Port 22
重新启动 ssh 服务即可
sudo service ssh restart
是否允许密码登入
# /etc/ssh/sshd_config
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes
仅允许使用 key 登入
为了安全性,避免主机被使用帐号密码 try,可以仅使用 key 登入,将密码 ssh 登入方式关闭
# /etc/ssh/sshd_config
PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
在自己电脑产生 key
ssh-keygen -t rsa -b 4096 -C "kj@kejyun.com"
- id_rsa.pub:公开金钥(public key),放在 Ubuntu 主机
- id_rsa:私密金钥(private key),不可外洩的个人金钥
将 id_rsa.pub 公开金钥放在 ~/.ssh/authorized_keys*
~$ mkdir .ssh
~$ cd .ssh
~/.ssh$ vim authorized_keys
重新启动 ssh 服务
service ssh restart
使用 key 登入
ssh -p <ssh_port> -i /Users/kejyun/.ssh/id_rsa -l <account> <ip_address>
ssh -p 22 -i /Users/kejyun/.ssh/id_rsa -l kj 127.0.0.1
SSH Log
SSH Log 档案放在 /var/log/auth.log
grep 'sshd' /var/log/auth.log
tail -f /var/log/auth.log
Authentication refused: bad ownership or modes for directory
ssh 登入为了安全性,对于 .ssh
目录的读写权限有限制,需要为 775
或 700
id_rsa.pub
与 authorized_keys
权限为 644
id_rsa
权限为 600
指定 key 及帐号
在做 ssh 连线 alias 指令时,想要直接接着需要连线的 IP,那麽就必须要把参数先指定好,后面才可以直接接着 IP
ssh -p <port> -i <ssh_key_path> -l <account>
- -p:port
- -i:ssh 金钥路径
- -l:帐号名称
ssh -p 22 -i ~/.ssh/id_rsa -l kejyun
使用 shell function 做 ssh 登入
f() { ssh <account>@$1 -i "<ssh_key_path>"; }; f
f() { ssh kejyun@$1 -i "~/.ssh/id_rsa"; }; f
在本机透过 ssh tunnel 直接连线主机
ssh -t -p <port> -l <account> <ssh_tunnel_server> bash -ic 'ssh_internal_server <ip_address>'
ssh -t -p 22 -l kejyun server.kj.com bash -ic 'ssh_kj 1.1.1.1'
参考资料
- Generating a new SSH key and adding it to the ssh-agent - User Documentation
- ssh - How to check sshd log? - Server Fault
- ssh免密码登陆设置时Authentication refused: bad ownership or modes错误解决方法 - 博学无忧
- openssl - ssh-keygen does not create RSA private key - Server Fault