質問編集履歴

12

文法の修正

2022/11/25 09:37

投稿

riho1128
riho1128

スコア22

test CHANGED
File without changes
test CHANGED
@@ -4,6 +4,7 @@
4
4
  11/25 ソースのインデント、エラーコード修正しました。
5
5
  11/25 13:55 エラーコード修正しました。
6
6
  11/25 17:04 試した事修正しました。
7
+ 11/25 18:26 試した事、エラーコード修正しました。
7
8
 
8
9
  netmiko公式
9
10
  https://pynet.twb-tech.com/blog/netmiko4-send-multiline.html
@@ -15,11 +16,16 @@
15
16
  ### 発生している問題・エラーメッセージ
16
17
  raise SSHException("No authentication methods available")
17
18
  paramiko.ssh_exception.SSHException: No authentication methods available
18
- →本文のpasswordのつづりに間違いがありました。申しないです。
19
+ →本文のpasswordのつづりに間違いがありました。申しわけないです。
20
+
21
+ output = net_connect.send_multiline(cmd_list)
22
+ AttributeError: 'FortinetSSH' object has no attribute 'send_multiline'
23
+ →netmikoのVerUp試した所、上記エラーは出なくなりました。
19
24
 
20
25
  (現在のエラーコード)
21
- output = net_connect.send_multiline(cmd_list)
26
+ cmd, expect_string = cmd_item
22
- AttributeError: 'FortinetSSH' object has no attribute 'send_multiline'
27
+ ValueError: not enough values to unpack (expected 2, got 1)
28
+ 恐らく2つの要素が必要なのに、一つしかないという意味?cmd_list内見直し中です。
23
29
 
24
30
 
25
31
  ### 該当のソースコード
@@ -55,7 +61,7 @@
55
61
  ```
56
62
 
57
63
  ### 試したこと
58
-
64
+ ・netmikoのVerUP 3.4.2→4.0.0
59
65
  ・netmikoがfortinetをサポートしている事は確認済
60
66
  ・print(dir(FortinetSSH))で確認。クラスがサポートしている属性の中にsend_multiineが存在しない(これが出来ない原因なのかは不明です。)
61
67
  ```ここに言語を入力

11

文法の修正

2022/11/25 08:05

投稿

riho1128
riho1128

スコア22

test CHANGED
File without changes
test CHANGED
@@ -3,7 +3,7 @@
3
3
  ネットワーク機器(Fortigate)のCLIプロンプトをnetmikoのsend_multilineを使用して返答が出来るかの検証を行っています。FortinetSSHがsend_multilineという属性を持ち合わせてない為、出るエラーという事はわかってるのですがどこを修正すればいいのかわかりません。Python初心者のため、公式を参考にしてソースは作成しました。原因含めご教授頂けないでしょうか?send_multiline以外の他方法もありましたら情報提供よろしくお願い致します。
4
4
  11/25 ソースのインデント、エラーコード修正しました。
5
5
  11/25 13:55 エラーコード修正しました。
6
- 11/25 14:56 試した事修正しました。
6
+ 11/25 17:04 試した事修正しました。
7
7
 
8
8
  netmiko公式
9
9
  https://pynet.twb-tech.com/blog/netmiko4-send-multiline.html
@@ -58,6 +58,9 @@
58
58
 
59
59
  ・netmikoがfortinetをサポートしている事は確認済
60
60
  ・print(dir(FortinetSSH))で確認。クラスがサポートしている属性の中にsend_multiineが存在しない(これが出来ない原因なのかは不明です。)
61
+ ```ここに言語を入力
62
+ ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_autodetect_fs', '_build_ssh_client', '_connect_params_dict', '_first_line_handler', '_lock_netmiko_session', '_modify_connection_params', '_open', '_read_channel', '_read_channel_expect', '_read_channel_timing', '_retrieve_output_mode', '_sanitize_output', '_test_channel_read', '_timeout_exceeded', '_try_session_preparation', '_unlock_netmiko_session', '_use_ssh_config', '_write_channel', '_write_session_log', 'check_config_mode', 'check_enable_mode', 'cleanup', 'clear_buffer', 'close_session_log', 'commit', 'config_mode', 'disable_paging', 'disconnect', 'enable', 'establish_connection', 'exit_config_mode', 'exit_enable_mode', 'find_prompt', 'is_alive', 'normalize_cmd', 'normalize_linefeeds', 'open_session_log', 'paramiko_cleanup', 'read_channel', 'read_until_pattern', 'read_until_prompt', 'read_until_prompt_or_pattern', 'run_ttp', 'save_config', 'select_delay_factor', 'send_command', 'send_command_expect', 'send_command_timing', 'send_config_from_file', 'send_config_set', 'serial_login', 'session_preparation', 'set_base_prompt', 'set_terminal_width', 'special_login_handler', 'strip_ansi_escape_codes', 'strip_backspaces', 'strip_command', 'strip_prompt', 'telnet_login', 'write_channel']
63
+ ```
61
64
  ・代替案pexpect使用→通らない
62
65
  (簡単にstatusを表示するコマンドが通るか確認)
63
66
  公式ページ

10

文法の修正

2022/11/25 06:02

投稿

riho1128
riho1128

スコア22

test CHANGED
File without changes
test CHANGED
@@ -59,7 +59,7 @@
59
59
  ・netmikoがfortinetをサポートしている事は確認済
60
60
  ・print(dir(FortinetSSH))で確認。クラスがサポートしている属性の中にsend_multiineが存在しない(これが出来ない原因なのかは不明です。)
61
61
  ・代替案pexpect使用→通らない
62
- 対話式プロンプトではなく簡単にstatusを表示するコマンドが通るか確認)
62
+ (簡単にstatusを表示するコマンドが通るか確認)
63
63
  公式ページ
64
64
  https://pexpect.readthedocs.io/en/stable/index.html
65
65
  ```ここに言語を入力

9

文法の修正

2022/11/25 05:58

投稿

riho1128
riho1128

スコア22

test CHANGED
File without changes
test CHANGED
@@ -9,7 +9,7 @@
9
9
  https://pynet.twb-tech.com/blog/netmiko4-send-multiline.html
10
10
  ### 実現したいこと
11
11
 
12
- ネットワーク機器(Fortigate)のCLIプロンプトにnetmikoを使って返答したい
12
+ ネットワーク機器(Fortigate)のCLIプロンプトにnetmikoを使って返答したい(他方法含め)
13
13
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-25/9fac029b-dc25-4456-a9c0-ef9a50d64451.png)
14
14
 
15
15
  ### 発生している問題・エラーメッセージ

8

文法の修正

2022/11/25 05:56

投稿

riho1128
riho1128

スコア22

test CHANGED
File without changes
test CHANGED
@@ -3,7 +3,7 @@
3
3
  ネットワーク機器(Fortigate)のCLIプロンプトをnetmikoのsend_multilineを使用して返答が出来るかの検証を行っています。FortinetSSHがsend_multilineという属性を持ち合わせてない為、出るエラーという事はわかってるのですがどこを修正すればいいのかわかりません。Python初心者のため、公式を参考にしてソースは作成しました。原因含めご教授頂けないでしょうか?send_multiline以外の他方法もありましたら情報提供よろしくお願い致します。
4
4
  11/25 ソースのインデント、エラーコード修正しました。
5
5
  11/25 13:55 エラーコード修正しました。
6
- 11/25 14:40 試した事修正しました。
6
+ 11/25 14:56 試した事修正しました。
7
7
 
8
8
  netmiko公式
9
9
  https://pynet.twb-tech.com/blog/netmiko4-send-multiline.html
@@ -58,8 +58,10 @@
58
58
 
59
59
  ・netmikoがfortinetをサポートしている事は確認済
60
60
  ・print(dir(FortinetSSH))で確認。クラスがサポートしている属性の中にsend_multiineが存在しない(これが出来ない原因なのかは不明です。)
61
- ・代替案pexepect使用→通らない
61
+ ・代替案pexpect使用→通らない
62
62
  (対話式プロンプトではなく簡単にstatusを表示するコマンドが通るか確認)
63
+ 公式ページ
64
+ https://pexpect.readthedocs.io/en/stable/index.html
63
65
  ```ここに言語を入力
64
66
  import pexpect
65
67
 

7

文法の修正

2022/11/25 05:53

投稿

riho1128
riho1128

スコア22

test CHANGED
File without changes
test CHANGED
@@ -57,7 +57,7 @@
57
57
  ### 試したこと
58
58
 
59
59
  ・netmikoがfortinetをサポートしている事は確認済
60
- ・print(dir(FortinetSSH))でクラスがサポートしている属性の中にsend_multiineが存在しない(これが出来ない原因なのかは不明です。)
60
+ ・print(dir(FortinetSSH))で確認。クラスがサポートしている属性の中にsend_multiineが存在しない(これが出来ない原因なのかは不明です。)
61
61
  ・代替案pexepect使用→通らない
62
62
  (対話式プロンプトではなく簡単にstatusを表示するコマンドが通るか確認)
63
63
  ```ここに言語を入力

6

文法の修正

2022/11/25 05:50

投稿

riho1128
riho1128

スコア22

test CHANGED
File without changes
test CHANGED
@@ -76,7 +76,7 @@
76
76
  <pexpect.spawn object at 0x7f4b9a0e12b0>
77
77
  version: 3.3
78
78
  command: /usr/bin/ssh
79
- args: ['/usr/bin/ssh', 'admin@172.30.0.8']
79
+ args: ['/usr/bin/ssh', 'admin@192.168.1.2]
80
80
  searcher: <pexpect.searcher_re object at 0x7f4b92667518>
81
81
  buffer (last 100 chars): b' \r\nFortiGate-60E # '
82
82
  before (last 100 chars): b' \r\nFortiGate-60E # '

5

文法の修正

2022/11/25 05:49

投稿

riho1128
riho1128

スコア22

test CHANGED
File without changes
test CHANGED
@@ -59,6 +59,7 @@
59
59
  ・netmikoがfortinetをサポートしている事は確認済
60
60
  ・print(dir(FortinetSSH))でクラスがサポートしている属性の中にsend_multiineが存在しない(これが出来ない原因なのかは不明です。)
61
61
  ・代替案pexepect使用→通らない
62
+ (対話式プロンプトではなく簡単にstatusを表示するコマンドが通るか確認)
62
63
  ```ここに言語を入力
63
64
  import pexpect
64
65
 

4

文法の修正

2022/11/25 05:47

投稿

riho1128
riho1128

スコア22

test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,7 @@
3
3
  ネットワーク機器(Fortigate)のCLIプロンプトをnetmikoのsend_multilineを使用して返答が出来るかの検証を行っています。FortinetSSHがsend_multilineという属性を持ち合わせてない為、出るエラーという事はわかってるのですがどこを修正すればいいのかわかりません。Python初心者のため、公式を参考にしてソースは作成しました。原因含めご教授頂けないでしょうか?send_multiline以外の他方法もありましたら情報提供よろしくお願い致します。
4
4
  11/25 ソースのインデント、エラーコード修正しました。
5
5
  11/25 13:55 エラーコード修正しました。
6
+ 11/25 14:40 試した事修正しました。
6
7
 
7
8
  netmiko公式
8
9
  https://pynet.twb-tech.com/blog/netmiko4-send-multiline.html
@@ -55,5 +56,47 @@
55
56
 
56
57
  ### 試したこと
57
58
 
58
- netmikoがfortinetをサポートしている事は確認済
59
+ netmikoがfortinetをサポートしている事は確認済
60
+ ・print(dir(FortinetSSH))でクラスがサポートしている属性の中にsend_multiineが存在しない(これが出来ない原因なのかは不明です。)
61
+ ・代替案pexepect使用→通らない
62
+ ```ここに言語を入力
63
+ import pexpect
59
64
 
65
+ connection = pexpect.spawn("ssh admin@192.168.1.2")
66
+ connection.expect("password:", timeout=120)
67
+ connection.sendline("Password")
68
+ connection.expect("FortiGate-60E#")
69
+ connection.sendline("get system status")
70
+ ```
71
+ 結果、timeout?になる
72
+ ```ここに言語を入力
73
+ raise TIMEOUT(str(err) + '\n' + str(self))
74
+ pexpect.TIMEOUT: Timeout exceeded.
75
+ <pexpect.spawn object at 0x7f4b9a0e12b0>
76
+ version: 3.3
77
+ command: /usr/bin/ssh
78
+ args: ['/usr/bin/ssh', 'admin@172.30.0.8']
79
+ searcher: <pexpect.searcher_re object at 0x7f4b92667518>
80
+ buffer (last 100 chars): b' \r\nFortiGate-60E # '
81
+ before (last 100 chars): b' \r\nFortiGate-60E # '
82
+ after: <class 'pexpect.TIMEOUT'>
83
+ match: None
84
+ match_index: None
85
+ exitstatus: None
86
+ flag_eof: False
87
+ pid: 3939
88
+ child_fd: 3
89
+ closed: False
90
+ timeout: 30
91
+ delimiter: <class 'pexpect.EOF'>
92
+ logfile: None
93
+ logfile_read: None
94
+ logfile_send: None
95
+ maxread: 2000
96
+ ignorecase: False
97
+ searchwindowsize: None
98
+ delaybeforesend: 0.05
99
+ delayafterclose: 0.1
100
+ delayafterterminate: 0.1
101
+ ```
102
+

3

文法の修正

2022/11/25 04:57

投稿

riho1128
riho1128

スコア22

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
  いつもお世話になっております。
3
3
  ネットワーク機器(Fortigate)のCLIプロンプトをnetmikoのsend_multilineを使用して返答が出来るかの検証を行っています。FortinetSSHがsend_multilineという属性を持ち合わせてない為、出るエラーという事はわかってるのですがどこを修正すればいいのかわかりません。Python初心者のため、公式を参考にしてソースは作成しました。原因含めご教授頂けないでしょうか?send_multiline以外の他方法もありましたら情報提供よろしくお願い致します。
4
4
  11/25 ソースのインデント、エラーコード修正しました。
5
- 11/25 13:45 エラーコード修正しました。
5
+ 11/25 13:55 エラーコード修正しました。
6
6
 
7
7
  netmiko公式
8
8
  https://pynet.twb-tech.com/blog/netmiko4-send-multiline.html
@@ -17,8 +17,8 @@
17
17
  →本文のpasswordのつづりに間違いがありました。申し訳ないです。
18
18
 
19
19
  (現在のエラーコード)
20
- if self.remote_conn.recv_ready():
20
+ output = net_connect.send_multiline(cmd_list)
21
- AttributeError: 'NoneType' object has no attribute 'recv_ready'
21
+ AttributeError: 'FortinetSSH' object has no attribute 'send_multiline'
22
22
 
23
23
 
24
24
  ### 該当のソースコード

2

文法の修正

2022/11/25 04:47

投稿

riho1128
riho1128

スコア22

test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,7 @@
2
2
  いつもお世話になっております。
3
3
  ネットワーク機器(Fortigate)のCLIプロンプトをnetmikoのsend_multilineを使用して返答が出来るかの検証を行っています。FortinetSSHがsend_multilineという属性を持ち合わせてない為、出るエラーという事はわかってるのですがどこを修正すればいいのかわかりません。Python初心者のため、公式を参考にしてソースは作成しました。原因含めご教授頂けないでしょうか?send_multiline以外の他方法もありましたら情報提供よろしくお願い致します。
4
4
  11/25 ソースのインデント、エラーコード修正しました。
5
+ 11/25 13:45 エラーコード修正しました。
5
6
 
6
7
  netmiko公式
7
8
  https://pynet.twb-tech.com/blog/netmiko4-send-multiline.html
@@ -13,6 +14,11 @@
13
14
  ### 発生している問題・エラーメッセージ
14
15
  raise SSHException("No authentication methods available")
15
16
  paramiko.ssh_exception.SSHException: No authentication methods available
17
+ →本文のpasswordのつづりに間違いがありました。申し訳ないです。
18
+
19
+ (現在のエラーコード)
20
+ if self.remote_conn.recv_ready():
21
+ AttributeError: 'NoneType' object has no attribute 'recv_ready'
16
22
 
17
23
 
18
24
  ### 該当のソースコード

1

文法の修正

2022/11/25 04:06

投稿

riho1128
riho1128

スコア22

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,7 @@
1
1
  ### 前提
2
2
  いつもお世話になっております。
3
3
  ネットワーク機器(Fortigate)のCLIプロンプトをnetmikoのsend_multilineを使用して返答が出来るかの検証を行っています。FortinetSSHがsend_multilineという属性を持ち合わせてない為、出るエラーという事はわかってるのですがどこを修正すればいいのかわかりません。Python初心者のため、公式を参考にしてソースは作成しました。原因含めご教授頂けないでしょうか?send_multiline以外の他方法もありましたら情報提供よろしくお願い致します。
4
+ 11/25 ソースのインデント、エラーコード修正しました。
4
5
 
5
6
  netmiko公式
6
7
  https://pynet.twb-tech.com/blog/netmiko4-send-multiline.html
@@ -10,10 +11,8 @@
10
11
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-25/9fac029b-dc25-4456-a9c0-ef9a50d64451.png)
11
12
 
12
13
  ### 発生している問題・エラーメッセージ
13
- Traceback (most recent call last):
14
- File "test4.py", line 24, in <module>
14
+ raise SSHException("No authentication methods available")
15
- output = net_connect.send_multiline(cmd_list)
16
- AttributeError: 'FortinetSSH' object has no attribute 'send_multiline'
15
+ paramiko.ssh_exception.SSHException: No authentication methods available
17
16
 
18
17
 
19
18
  ### 該当のソースコード
@@ -42,10 +41,10 @@
42
41
  ["\n", r"confirm | cancel"],
43
42
  ["confirm", ""],
44
43
  ]
45
- output = net_connect.send_multiline(cmd_list)
44
+  output = net_connect.send_multiline(cmd_list)
46
- print(output)
45
+  print(output)
47
46
 
48
- net_connect.disconnect()
47
+ #net_connect.disconnect()
49
48
  ```
50
49
 
51
50
  ### 試したこと