Keen的博客

记录所思、所想、所遇

欢迎来到我的个人站~


SSH登录与操作 - Windows and CentOS

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

jpg jpg

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命令 png

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

jpg

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,查找如下服务,设置为自动启动。

png

对于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,完毕

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少