このエントリーをはてなブックマークに追加


Cygwinでsshコマンド実行時、Pseudo-terminal will not be allocated because stdin is not a terminal.と表示された時の対処

Windows10で以下のメッセージが表示された場合、本資料が役に立つかもしれません。

$ ssh sakura@192.168.1.32
Pseudo-terminal will not be allocated because stdin is not a terminal.

原因と対策

以下、いくつかの原因と対策を記します。

Cygwinのopensshパッケージはインストールされていますか?

Windows10のオプション機能である OpenSSH クライアント がインストールされたため、MicrosoftがWindows10向けに提供しているsshコマンドが起動されたのが原因と考えられます。

01.png
 

Cygwinのopensshパッケージをインストールし、再度ターミナルを起動すれば正常に動作すると思います。

02.png
 

ちなみにコマンドプロンプトを起動し、以下のコマンドを実行すると、Microsoft提供のsshコマンドが存在しているのが確認できます。

where ssh
03.png

Cygwinのsshコマンドはインストール済みだけど…

この場合は、$PATHの順序に問題があるのかもしれません。 Cygwinターミナルで以下のようになれば、Microsoftが提供しているsshであることが確認できます。

$ which ssh
/cygdrive/c/Windows/System32/OpenSSH/ssh

デフォルトでCygwinをインストールすれば、以下のような$PATHとなっていました。

$ echo $PATH
/usr/local/bin:/usr/bin:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/c/Windows/System32/OpenSSH:/cygdrive/c/Users/sakura/AppData/Local/Microsoft/WindowsApps:/cygdrive/c/Users/sakrua/AppData/Local/Programs/Microsoft VS Code/bin
Cygwinのsshコマンドは、以下のように /usr/bin に存在しています。~
PATH環境変数を修正して対応してみてください。
$ which ssh
/usr/bin/ssh

または、aliasコマンドを使って、以下のようにするのも良いかもしれません。

alias ssh='/usr/bin/ssh'

以上、CygwinでPseudo-terminal will not be allocated because stdin is not a terminal.が表示され動作しないときの対処方法でした。



添付ファイル: file03.png 486件 [詳細] file02.png 488件 [詳細] file01.png 472件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-03-19 (火) 17:43:21