Не могу авторизоваться на удаленном VPS с помощью SSH в Gitlab - PullRequest
0 голосов
/ 06 октября 2018

Я подключался до vps, используя приведенную ниже конфигурацию gitlab ci / cd.Но на недавнем сервере я не могу.

мой файл .yml выглядит следующим образом:

deploy:
  environment:
    name: production
    url: http://erfantahvieh.com/
  image: php:7.1.1
  stage: deploy
  only:
    - master
  before_script:
    - apt-get update -yqq
    - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
    - mkdir -p ~/.ssh
    - echo -e "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
    - chmod 700 ~/.ssh
    - chmod 700 ~/.ssh/id_rsa
    - eval "$(ssh-agent -s)"
    - ssh-add ~/.ssh/id_rsa
    - ssh-keyscan -H $HOST >> ~/.ssh/known_hosts
    - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'

  script:
    - ssh $USER@$HOST "ls -la"

Знайте, когда я запускаю свою конвейерную линию, вывод будет примерно таким:

$ mkdir -p ~/.ssh
$ echo -e "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
$ chmod 700 ~/.ssh
$ chmod 700 ~/.ssh/id_rsa
$ eval "$(ssh-agent -s)"
Agent pid 201
$ ssh-add ~/.ssh/id_rsa
Identity added: /root/.ssh/id_rsa (rsa w/o comment)
$ ssh-keyscan -H $HOST >> ~/.ssh/known_hosts
# xxx.xxx.xxx.xxx SSH-2.0-OpenSSH_7.4
# xxx.xxx.xxx.xxx SSH-2.0-OpenSSH_7.4
# xxx.xxx.xxx.xxx SSH-2.0-OpenSSH_7.4
$ [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
$ ssh $USER@$HOST "ls -la"
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
ERROR: Job failed: exit code 1

Что не так?Почему раньше я подключался по одному и тому же коду, а теперь не могу?Есть ли что-то, что я пропустил?

Примечание: я создаю закрытый ключ ssh в своем vps и помещаю его в секретную переменную в настройках gitlab ci / cd, таких как $ HOST и $ USER.

1 Ответ

0 голосов
/ 19 октября 2018

Проблема возникает из-за того, что в вашей папке .ssh должен быть файл authorized_keys, чтобы другие машины могли войти на ваш сервер с помощью ssh private key.

Этот файл можно создать, если его нетниже команды.

cd ~/.ss
cp id_rsa.pub authorized_keys
systmctl restart sshd
...