1. Windows平台
1.1. Win32-OpenSSH的安装
如果其他机器,想使用ssh登录windows,需要先在Windows上安装SSH服务,参考https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH
1.2. CentOS使用SSH命令,登录Windows
ssh username@ip -p 22
1.3. ssh的配置
配置所在位置:C:\ProgramData\ssh\sshd_config
1.3.1. log配置
参考:https://github.com/PowerShell/Win32-OpenSSH/wiki/Logging-Facilities
sshd_config
# Logging
#SyslogFacility AUTH
SyslogFacility local0
#LogLevel INFO
LogLevel VERBOSE
1.3.2. 重启sshd服务
net stop sshd
net start sshd
日志会保存在 C:\ProgramData\ssh\logs\sshd.log
1.4. ssh的相关命令
在centos中退出ssh对windows的连接:exit
2. CentOS平台
默认支持了OpenSSH服务
2.1. Windows使用Putty或者XShell客户端,登录CentOS
2.2. SSH的配置
2.2.1. LOG日志本地存储
配置所在位置:
/etc/ssh/sshd_config
# Logging
#SyslogFacility AUTH
SyslogFacility local5
#LogLevel INFO
LogLevel VERBOSE
/etc/rsyslog.conf
增加一行:
local5.* /var/log/ssh/sshd_log.log
2.2.2. 配置完,重启sshd和syslog服务
systemctl restart sshd
systemctl restart syslog
3. Mac平台
3.1. 安装和配置iTerm2
mac平台自带等命令行工具,本身支持等功能不太强大,一般使用iTerm2,可以配合一些rz、sz、自定义命令行等,实现多种功能,同时还能自定义一些插件,实现各种语法支持,比如vim、git等。
软件包官网:https://www.iterm2.com/
为了使得更漂亮,通常需要配置iTerm2,配置相应等主题。Oh My Zsh是一个非常丰富主题的一个软件包,我这里配置如下:
- Step1:安装Oh My Zsh
# 安装Oh My Zsh sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
- Step2:配置risto主题
# vim修改~/.zshrc中的ZSH_THEME字段 ZSH_THEME="risto"
- Step3:声明高亮
# 安装zsh-syntax-highlighting brew install zsh-syntax-highlighting
# vim修改~/.zshrc,在最后一行增加如下配置 source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
- Step3:自动填充命令
# 安装自动填充工具 git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
# vim修改~/.zshrc中的plugins字段,增加zsh-autosuggestions插件 plugins=(git zsh-autosuggestions)
- Step4:vim语法高亮
# vim修改~/.vimrc,增加一行如下: syntax on
3.2. 使用HomeBrew
参考https://zhuanlan.zhihu.com/p/59805070
3.3. 利用iTerm2和expect便捷使用ssh登陆
- Step1:新建一个文件centos_label
cd ~ mkdir .ssh cd .ssh vim centos_label
- Step2:编辑centos_label ```bash #!/usr/tcl/bin/expect
set timeout 30 set host “101.200.241.109” set username “root” set password “123456”
spawn ssh $username@$host expect “password” {send “$password\r”} interact
- Step3:安装expect
```bash
brew install expect
- Step4:在iTerm2中配置一个Tab模板,并配置上expect命令
4. 客户端免密码ssh登陆服务端
4.1. 在客户端或者服务端,生成密钥对
# my_server1_rsa任意命名即可,执行完后,会生成私钥my_server1_rsa和公钥my_server1_rsa.pub
ssh-keygen -t rsa -f ~/.ssh/my_server1_rsa
4.2. 私钥放客户端,公钥放服务端
# 先查看,有无authorized_keys,没有就创建一个文件
vim authorized_keys
chmod 600 authorized_keys
# 将公钥,追加放到服务端的以下这个文件中
cat my_server1_rsa.pub >> authorized_keys
4.3. 服务端的ssh服务配置,需要开启密钥登录
vim /etc/ssh/sshd_config
4.4. 在客户端带私钥登录服务端
ssh -i my_server1_rsa root@192.168.2.132
4.5. ssh自动查找私钥(无需命令行方式)
使用4.4中的命令行,依旧需要-i命令,传递私钥。有时候我们想自动让ssh去查找私钥,无需明确传递,则需要我们添加私钥到ssh自身的列表中去。
# 新增私钥
ssh-add ~/.ssh/my_server1_rsa
如果私钥改变,需要重新add,也可以先删除老的私钥:
# 删除私钥
ssh-add -d ~/.ssh/my_server1_rsa
对于Win10,需要开启SSH Agent服务。运行Win+R,输入services.msc,查找如下服务,设置为自动启动。
对于Git Bash,也可以直接使用以下命令,运行ssh agent
exec ssh-agent bash
eval ssh-agent -s
ssh-add “C:\Users\Administrator\.ssh\id_rsa”
这样,会生成一堆ssh-agent.exe,浪费内存。为了方便,最好使用bash_profile在启动时刻添加key,退出时杀掉agent进程
# ~/.bash_profile
function start_agent {
SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then
eval `$SSHAGENT $SSHAGENTARGS`
trap "kill $SSH_AGENT_PID" 0
fi
}
function ssh_add_all {
for file in `ls ~/.ssh`; do
if [[ $file == *_rsa ]]; then
echo "ssh-add $file"
ssh-add ~/.ssh/$file
fi
done
}
start_agent
ssh_add_all
4.6. vs2017中git ssh方式权限问题
在visual studio 2017中,使用git ssh方式时,如果有问题,可以参考这篇文章https://www.cgranade.com/blog/2016/06/06/ssh-keys-in-vscode.html。全篇大致做法如下:
- Step1:使用git for windows官方版本,替换vs2017中不完整的git(例如:直接将C:\Program Files\Git拷贝到C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git下去)
- Step2:使用putty工具-puttygen.exe(这里可以使用TorgoiseGit中的puttygen.exe),生成putty兼容格式的密钥对
- Step3:将Step2中生成的公钥,拷贝到Github中,将私钥保存到本机任意目录
- Step4:使用putty工具-pageant.exe(这里可以使用TorgoiseGit中的pageant.exe),将Step3中保存的私钥,加入进去。注意,需要将它加入到自启动,但是可惜的是,每次启动,还是需要自己add一遍key。不过好在我不常关机。
- Step5:创建一个环境变量GIT_SSH,内容指向putty工具-plink.exe(这里可以使用TorgoiseGit中的TortoiseGitPlink.exe),这个工具是与服务器端建立连接,在git操作时,会自动使用这个环境变量
- Step6:重启vs2017,完毕