Fatal: не удалось прочитать имя пользователя для 'https://github.com': нет такого устройства или адреса

Я развертываю приложение Rails 4 в Rackspace с помощью github и capistrano уже несколько недель. Все работало нормально, пока я наконец не сделал свой репозиторий частным. Теперь я получаю следующую ошибку после запуска "cap deploy":

"fatal: не удалось прочитать пароль для'https://username@github.com': Нет такого устройства или адреса"

Ниже приведен код из моего развертывания.файл rb

set :application, "appname"
set :repository,  "https://git_username@github.com/git_username/appname.git"
set :scm, :git
set :scm_username, "git_username"
set :scm_passphrase, "git_password"
set :scm_command, "git"
set :keep_releases, 5
set :branch, "master"
set :rails_env, "production"

set :deploy_to, "/var/www/doLocal"

set :user, "deployer"
set :password, "deployer_password"
set :use_sudo, false

ssh_options[:forward_agent] = true

server "/path/to/server", :app, :web, :db, :primary => true

after "deploy:restart", "deploy:cleanup"


namespace :deploy do
  task :start do ; end
  task :stop do ; end
  task :restart, :roles => :app, :except => { :no_release => true } do
     run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end
end

Я пробовал С и без имени пользователя, добавленного к имени репозитория github. Если он есть, я получаю ошибку пароля сверху, но если его нет, я получаю следующую ошибку:

"fatal: не удалось прочитать имя пользователя для'https://github.com': Нет такого устройства или адреса"

есть идеи, в чем проблема? Я предполагаю, что это связано с тем, что я перешел в частный репозиторий. Я прочитал некоторые вещи об использовании ssh, но также не читал.

любые предложения или помощь были бы очень признательны!

3 ответов


Итак, я понял это. Чтобы использовать частное РЕПО на Github для развертывания с использованием https, вам нужно использовать OAuth API Github. В разделе изменить профиль учетной записи github щелкните приложения, а затем создайте маркер OAuth. Затем добавьте свой токен к url-адресу РЕПО следующим образом:

 set :repository,  "https://<OAuthToken>@github.com/username/application.git"

после этого я смог запустить

 cap deploy

и развернуть мое приложение на моем удаленном сервере.


сообщение об ошибке является общей ошибкой git, хотя сам вопрос специфичен для Ruby.

Итак, для всех, кто приземлился здесь, вот non-rails ответ: отсутствующее устройство на самом деле является консолью.

  1. вы пытались аутентифицировать неинтерактивно (т. е. с помощью ключа SSH). Это не удалось.
  2. в качестве запасного варианта git попытался предложить пользователю ввести имя пользователя, но это не работает, поскольку интерактивная консоль не доступный.

Fix #1, так как вы, вероятно, не хотите проходить проверку подлинности в интерактивном режиме во время развертывания. В моем случае это была проблема github oauth.


fatal: could not read Username for 'https://github.com': No such device or address"

Регистрация github username первый же свой scm user то же самое, что сервер user в коде?

код

 set :scm_user, "user"
 set :user, "user"

он должен быть!--11-->

 set :user, "deployer"  # The server's user for deploys
 set :scm_user, "ram"  # The   github username

также установите парольную фразу

  set :scm_passphrase, "p@ssw0rd"  # The deploy user's password

теперь случай репозитория..согласно я думаю, что вы настройка репозитория должна быть

set :repository, "git@github.com:username/repo.git"  # Your clone URL

и

 set :ssh_options, { :forward_agent => true }