我在 win10 上使用 git-bash 本地工作。我有兴趣在我正在使用的 ubuntu 16.4 vps 上设置一些基本的安全性。我正在阅读https://www.codelitt.com/blog/my-first-10-minutes-on-a-server-primer-for-securing-ubuntu/和http://plusbryan.com/my-first-5-minutes-on-a-server-or-essential-security-for-linux-servers。
基于此我做了:
vim /etc/default/ufw
然后:
IPV6=yes
sudo ufw allow OpenSSH
sudo ufw allow 80
sudo ufw allow 443
然后我重置了它。
我有一个 python fabric 脚本,在进行安全更改之前我曾在该服务器上成功使用过该脚本:
@roles('production')
def dir():
# env.key_filename = '~/.ssh/id_rsa'
# env.key_filename = 'E:\.ssh\id_rsa.pem.ppk'
env.key_filename = 'E:\.ssh\id_rsa_private'
local("pip freeze > requirements.txt")
local("git add . --all && git commit -m 'fab'")
local("git push myproject master")
run('pwd')
run('ls')
code_dir = '/home/deploy/myproject/'
with cd(code_dir):
run('pwd')
run('git reset --hard master')
run('ls -la')
现在当我运行它时我得到:
debug1: Connecting to xx.xx.xx.xx [xx.xx.xx.xx] port 22.
debug1: connect to address xx.xx.xx.xx port 22: Connection refused
ssh: connect to host xx.xx.xx.xx port 22: Bad file number
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Fatal error: local() encountered an error (return code 128) while executing 'git push mysite master'
我打开 Windows 10 telnet 客户端并运行“telnet xxx.xx.xx.xx 22”得到:
Could not open connection to the host, on port 22: Connect failed
但我相信端口 22 是开放的,因为我可以使用 putty 登录。
我已经检查过,在我的 vps 上,我的 /home/deploy/.ssh/authorized _keys 包含我的 id_rsa 公钥。我在 fabric 脚本上尝试了各种版本的私钥,因为我怀疑这是一个与密钥相关的问题。
一个问题是,我现在有密钥的密码,但是 Fabric 不会暂停并询问这个密码。
我怎样才能让它工作?