質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

2368閲覧

Python ターミナル上でパスワードの入力の仕方を教えてください

watchdogs

総合スコア54

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2022/08/17 14:11

編集2022/08/17 23:17

Pythonのsubprocessを使用して
ターミナルへ自動入力をさせるスクリプトを作成しています。
そこでパスワード入力を求められ(下記画像)

イメージ説明
そこが入力できずに困っています。
どのようなコードを書けば入力でき課題を解決できるか教えて欲しいです。

試したこと下記の方法です。

Python

1import subprocess 2pwd = XXXXX#password 3subprocess.run([str(pwd)], shell=True)

なお、os.systemのの方法も試してみましたが、うまく反映されませんでした。

環境
OS:MACOS
Python3.8.9

開発背景
ラズベリーパイとの
scp通信でデータの転送を行うプログラムを作成しています。
ラズベリパイとの通信の途中上記の鍵マークのパスワード入力が求められ
止まっている状況です。
下記全体のプログラムを記載します。
ご教授願います。

Python

1import subprocess 2 3 4subprocess.run(["scp 送付するデータ.拡張子 pi@raspberrypi.保存するディレクトリ"], shell=True) 5 6#ここから先接続されると鍵マークのついたラズベリーパイのパスワード入力を求められる 7#下記を試したが、入力されず先に進まず困っています。 8pwd = XXXXX #入力するパスワード 8桁の文字列(大文字有り半角英文字+数字) 9subprocess.run([str(pwd)], shell=True)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2022/08/17 16:10 編集

変数pwdの中身は?どんなプログラムに対してパスワードを入力したいのかがわからないと考えようが無いです。
otn

2022/08/17 23:37

なんと! subprocess.runの引数にパスワードを指定していた?!それは想像の外です。 subprocess.run はプログラムを実行する関数です。
watchdogs

2022/08/17 23:53

otnさん コメントありがとうございます。 本ケースの様にパスコードを入力する際はどのような方法をとれば良いか ご存知でしたら教えていただけますか。
guest

回答2

0

下記で解決しました

Python

1import pexpect 2 3PASSWORD = "XXXXXXXX" 4scp = pexpect.spawn("scp XXX.csv pi@raspberrypi.local:/home/") 5scp.expect('.ssword:*') 6scp.sendline(PASSWORD) 7scp.interact()

投稿2022/08/18 01:19

watchdogs

総合スコア54

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

パスワード入力を求めているのが、scpの場合は、
案1:sshpassというパスワード指定用の専用コマンドがあるので、それを使う。ただし、MacOSにもあるのかどうかは知りません。
案2:sshpassが使えない場合は、expectというコマンドを使って、「scpコマンドをを実行してパスワードを入力する」というスクリプトを書き、そのスクリプトを実行する。
案3:認証をパスワードによる物から、公開鍵認証に変えて、パスフレーズ無しの秘密鍵を使う。

投稿2022/08/18 00:12

otn

総合スコア84557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

watchdogs

2022/08/18 01:17

案2でうまくいけました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問