Обратите внимание - это зависит от платформы. Я пробовал это на
>>> print sys.platform
'darwin'
и код не имеет проблем. Тем не менее, на
>>> print sys.platform
'win32'
Я понял проблему.
Кроме того, я могу без проблем подключиться к экземпляру с помощью winscp.
Я запускаю следующую команду gcloud ssh:
gcloud compute ssh my-instance --zone=us-east1-b --command="sudo -S -i -u root -p '' echo 'git -C /root/git/v_a stash;git -C /root/git/v_a pull https://user:pass@bitbucket.org/user/v_a.git;git -C /root/git/gcloud stash;git -C /root/git/gcloud pull https://user:pass@bitbucket.org/user/gcloud.git;git -C /root/git/bt stash;git -C /root/git/bt pull https://user:pass@bitbucket.org/user/bt.git;python /root/git/v_a/d_s_e.py --r-day=1 --r-l=5;' > runner.sh "
Что работало до недавнего времени, но теперь возвращается:
WARNING - POTENTIAL SECURITY BREACH!
The server's host key does not match the one PuTTY has
cached in the registry. This means that either the
server administrator has changed the host key, or you
have actually connected to another computer pretending
to be the server.
The new rsa2 key fingerprint is:
ssh-rsa blah
If you were expecting this change and trust the new key,
enter "y" to update PuTTY's cache and continue connecting.
If you want to carry on connecting but without updating
the cache, enter "n".
If you want to abandon the connection completely, press
Return to cancel. Pressing Return is the ONLY guaranteed
safe choice.
Update cached key? (y/n, Return cancels connection) stdin: is not a tty
Как видно из приведенной выше команды, она ничего не делает, кроме echo
въезжая в .sh
файл.
Если я удалю файлы в C:\Users\%USER%\.ssh
, и перезапустите мой gcloud ssh, я получаю:
WARNING: The PuTTY PPK SSH key file for gcloud does not exist.
WARNING: The public SSH key file for gcloud does not exist.
WARNING: The private SSH key file for gcloud does not exist.
WARNING: You do not have an SSH key for gcloud.
WARNING: SSH keygen will be executed to generate a key.
Updating project ssh metadata...
.....................Updated [https://www.googleapis.com/compute/v1/projects/my-project].
done.
Waiting for SSH key to propagate.
WARNING - POTENTIAL SECURITY BREACH!
The server's host key does not match the one PuTTY has
cached in the registry. This means that either the
server administrator has changed the host key, or you
have actually connected to another computer pretending
to be the server.
The new rsa2 key fingerprint is:
ssh-rsa foo
If you were expecting this change and trust the new key,
enter "y" to update PuTTY's cache and continue connecting.
If you want to carry on connecting but without updating
the cache, enter "n".
If you want to abandon the connection completely, press
Return to cancel. Pressing Return is the ONLY guaranteed
safe choice.
Update cached key? (y/n, Return cancels connection) stdin: is not a tty
Почему я получаю это сообщение об ошибке? Я только недавно начал получать.
Как мне избежать появления этого сообщения об ошибке? Есть ли флаг, который я могу передать своим gcloud ssh
команда для программного обновления этого кешированного ключа?
Спасибо!
Правки для ответа Navi:
В моем экземпляре gcloud у меня есть следующий путь:
/home/%USER%/.ssh
Локально на своем ПК я запустил:
C:\>gcloud compute copy-files instance-v-a-20170826113548099000-l5-r1:/home/%USER%/.ssh C:/temp/ --zone us-east1-b
Дополнительно локально у меня есть следующий путь:
C:\Users\%USER%\.ssh
Который имеет следующие ls -l
:
$ ls -l
total 97
-rw-r--r-- 1 username 197121 1679 Apr 9 20:55 _google_compute_engine
-rw-r--r-- 1 username 197121 1454 Apr 9 20:56 _google_compute_engine.ppk
-rw-r--r-- 1 username 197121 422 Apr 9 20:55 _google_compute_engine.pub
-rw-r--r-- 1 username 197121 63368 Jul 7 2016 _known_hosts
-rw-r--r-- 1 username 197121 398 Jun 27 2016 _known_hosts.txt
-rw-r--r-- 1 username 197121 1675 May 12 2015 github_rsa
-rw-r--r-- 1 username 197121 408 May 12 2015 github_rsa.pub
-rw-r--r-- 1 username 197121 1679 Aug 5 17:41 google_compute_engine
-rw-r--r-- 1 username 197121 1454 Aug 5 17:41 google_compute_engine.ppk
-rw-r--r-- 1 username 197121 1454 Aug 5 13:21 google_compute_engine.ppk_
-rw-r--r-- 1 username 197121 422 Aug 5 17:41 google_compute_engine.pub
-rw-r--r-- 1 username 197121 422 Aug 5 13:21 google_compute_engine.pub_
-rw-r--r-- 1 username 197121 1679 Aug 5 13:21 google_compute_engine_
Пытаясь решить эту проблему, я переименовал старые файлы с подчеркиванием (это не должно относиться к проблеме, только документирование).
Теперь в ssh-ключах метаданных у меня есть следующее:
В моем C:\temp\.ssh\authorized_keys
У меня есть следующее (усечено, чтобы не публиковать мой ключ):
# Added by Google
ssh-rsa AAAAB3NzaC CookieMunster\jasonm@CookieMunster
И мой местный C:\Users\%USER%\.ssh\google_compute_engine.ppk
имеет:
PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: CookieMunster\jasonm@CookieMunster
Public-Lines: 6
AAAAB3NzaC
Private-Lines: 14
AAABA
Private-MAC: bd4
Я сравнил полные строки в блокноте ++, и они идентичны, за исключением google_compute_engine.ppk
файл не содержит имя компьютера в конце, а скорее в комментарии.
Так что Navi я не думаю, что они отличаются.
Мой systeminfo
команда дает:
Host Name: PCNAME
OS Name: Microsoft Windows 8.1
OS Version: 6.3.9600 N/A Build 9600
OS Manufacturer: Microsoft Corporation
OS Configuration: Standalone Workstation
OS Build Type: Multiprocessor Free
Registered Owner: user
Registered Organization:
Product ID: 00258-61265-96725-AAOEM
Original Install Date: 5/31/2014, 12:56:22 PM
System Boot Time: 9/1/2017, 12:32:41 AM
System Manufacturer: Acer
System Model: Aspire XC-603
System Type: x64-based PC
Processor(s): 1 Processor(s) Installed.
[01]: Intel64 Family 6 Model 55 Stepping 3 GenuineIntel ~2408 Mhz
BIOS Version: American Megatrends Inc. P11-A2, 1/23/2014
Windows Directory: C:\Windows
System Directory: C:\Windows\system32
Boot Device: \Device\HarddiskVolume2
System Locale: en-us;English (United States)
Input Locale: N/A
Time Zone: (UTC-05:00) Eastern Time (US & Canada)
Total Physical Memory: 3,985 MB
Available Physical Memory: 734 MB
Virtual Memory: Max Size: 8,128 MB
Virtual Memory: Available: 2,523 MB
Virtual Memory: In Use: 5,605 MB
Page File Location(s): C:\pagefile.sys
Domain: WORKGROUP
Logon Server: \\PCNAME
Hotfix(s): 117 Hotfix(s) Installed.
[01]: KB2899189_Microsoft-Windows-CameraCodec-Package
[02]: KB2868626
[03]: KB2883200
[04]: KB2884846
[05]: KB2887595
[06]: KB2894029
[07]: KB2894179
[08]: KB2894852
[09]: KB2894856
[10]: KB2896459
[11]: KB2900986
[12]: KB2903939
[13]: KB2910887
[14]: KB2911106
[15]: KB2913642
[16]: KB2919355
[17]: KB2919394
[18]: KB2919442
[19]: KB2920189
[20]: KB2921128
[21]: KB2928680
[22]: KB2954879
[23]: KB2955164
[24]: KB2958262
[25]: KB2959626
[26]: KB2959977
[27]: KB2961072
[28]: KB2961908
[29]: KB2962140
[30]: KB2962409
[31]: KB2965142
[32]: KB2965500
[33]: KB2966826
[34]: KB2966828
[35]: KB2967917
[36]: KB2968296
[37]: KB2969339
[38]: KB2971203
[39]: KB2972103
[40]: KB2972213
[41]: KB2973114
[42]: KB2975061
[43]: KB2975719
[44]: KB2976627
[45]: KB2977629
[46]: KB2977765
[47]: KB2978041
[48]: KB2978122
[49]: KB2978126
[50]: KB2979573
[51]: KB2979576
[52]: KB2984006
[53]: KB2987107
[54]: KB2989647
[55]: KB2989930
[56]: KB2990967
[57]: KB2993100
[58]: KB2994290
[59]: KB2995004
[60]: KB2995388
[61]: KB2996799
[62]: KB2998174
[63]: KB2999226
[64]: KB3000850
[65]: KB3003057
[66]: KB3003667
[67]: KB3004361
[68]: KB3004365
[69]: KB3004394
[70]: KB3006137
[71]: KB3008188
[72]: KB3008242
[73]: KB3008923
[74]: KB3011780
[75]: KB3012199
[76]: KB3012235
[77]: KB3012702
[78]: KB3013172
[79]: KB3013410
[80]: KB3014442
[81]: KB3016074
[82]: KB3018133
[83]: KB3019215
[84]: KB3019978
[85]: KB3020338
[86]: KB3021952
[87]: KB3022777
[88]: KB3022796
[89]: KB3023266
[90]: KB3023562
[91]: KB3024751
[92]: KB3024755
[93]: KB3025417
[94]: KB3027209
[95]: KB3029606
[96]: KB3029803
[97]: KB3030377
[98]: KB3030947
[99]: KB3032323
[100]: KB3032359
[101]: KB3033889
[102]: KB3034344
[103]: KB3034348
[104]: KB3035017
[105]: KB3035126
[106]: KB3035131
[107]: KB3035132
[108]: KB3035527
[109]: KB3035553
[110]: KB3035583
[111]: KB3036228
[112]: KB3036562
[113]: KB3036612
[114]: KB3039066
[115]: KB3044132
[116]: KB3046049
[117]: KB3102467
Network Card(s): 2 NIC(s) Installed.
[01]: Realtek PCIe GBE Family Controller
Connection Name: Ethernet
DHCP Enabled: Yes
DHCP Server: 000.000.1.1
IP address(es)
[01]: 000.000.0.155
[02]: ffff::ffff:ffff:ffff:ffff
[02]: TAP-Windows Adapter V9
Connection Name: Ethernet 2
Status: Media disconnected
Hyper-V Requirements: VM Monitor Mode Extensions: Yes
Virtualization Enabled In Firmware: Yes
Second Level Address Translation: Yes
Data Execution Prevention Available: Yes
Я попытался воспроизвести это на MS server 2012 R2 с помощью «Google Cloud SDK Shell» и не получил предупреждающего сообщения. Наиболее вероятная причина заключается в том, что отпечаток RSA изменился на сервере GCE, но на клиентском компьютере все еще хранится предыдущий отпечаток RSA.
Убедитесь, что ключи в файлах каталога C: \ Users \% USER% .ssh на клиентском компьютере совпадают с ключами SSH пользователя экземпляра GCE, которые находятся в файлах каталога /path-to-home-directory/.ssh. Кроме того, проверьте ключи SSH для всего проекта в разделе «Облачная консоль»> «Compute Engine»> «Метаданные»> «Проверьте вкладку« Ключи SSH », чтобы найти доступные ключи, соответствующие ключам, хранящимся в каталоге C: \ Users \% USER% .ssh.
Получаете ли вы такое же сообщение, даже если выбрали «Y» для «Обновить кэшированный ключ»? на клиентском компьютере?
Изменить: прикрепление снимка экрана.
По какой-то причине открытый ключ с сервера, к которому вы пытаетесь подключиться, изменился и не соответствует тому, который вы сохранили, поэтому gcloud волнуется.
Самый простой способ решить проблему - сделать это один раз:
gcloud compute ssh [YOUR INSTANCE NAME] --force-key-file-overwrite
Из документация:
--force-key-file-overwrite
If enabled, the gcloud command-line tool will regenerate and overwrite the files associated with a broken SSH key without asking for confirmation in both interactive and non-interactive environments.
If disabled, the files associated with a broken SSH key will not be regenerated and will fail in both interactive and non-interactive environments.
Это должно перезаписать pubkey, который вы сохранили для этого сервера. После этого при подключении вы не будете получать никаких ошибок, по крайней мере, до тех пор, пока ключ ssh для сервера снова не изменится.