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 ответ: отсутствующее устройство на самом деле является консолью.
- вы пытались аутентифицировать неинтерактивно (т. е. с помощью ключа SSH). Это не удалось.
- в качестве запасного варианта 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 }