Thanks, Vince! 
I'm pretty sure I saw that link in my results, but the Ubuntu reference 
resulted in my continue scrolling. I will try your suggestion when I get 
back home!

On Saturday, June 1, 2024 at 7:59:44 PM UTC-5 vince wrote:

> If you google your exact error "*Host key verification failed."* and it 
> will return what's going on....
>
>
> https://askubuntu.com/questions/45679/ssh-connection-problem-with-host-key-verification-failed-error
>
> The weewx-related answer is that you're using old notes that are still 
> expecting the 'root' user on the weewx system to be the local user, which 
> is no longer accurate.  In v5 it is the 'weewx' user (upgrade guide link) 
> <https://www.weewx.com/docs/5.0/upgrade/#weewx-runs-as-non-root-user>. 
>  So it is very likely the host key of the remote computer is not known in 
> the /home/weewx/.ssh/known_hosts file.  Simplest way around this would be 
> do append whatever is in your legacy /root/.ssh/known_hosts file to your 
> /home/weewx/.ssh/known_hosts file.
>
> On Saturday, June 1, 2024 at 5:34:36 PM UTC-7 Ben W. wrote:
>
>> Greetings!
>> Thank you for logging these steps last year:
>>
>> 1. I logged as root ('sudo -i' from 'pi' account)
>> 2. generated SSH keys ('ssh-keygen')
>> 3. copied them to external server ('ssh-copy-id 
>> ace...@external.domain.com <https://groups.google.com/> -p 222')
>> 4. copied /home/pi/.ssh/config to /root/.ssh/config
>> 5. changed owner of 'config' ('chown root:root /root/.ssh/config')
>> 6. waited for next synchronization
>> 7. smiled because everything worked as expected :)
>>
>> I'm stuck between 6 and 7 and unsure what I'm doing wrong. My logs are 
>> below. I've copied the public key from the 'root' user and verified on my 
>> paid web hosting site that they have the same key even with 'root'. I can 
>> SSH in, but the host is still asking for a password - only if I enter the 
>> password am I able to authenticate. It's as-if either side isn't seeing the 
>> key. I'm assuming that's my problem with rsync. The logs:
>>
>> _______
>>
>> Jun 01 19:18:18 rpi systemd[1]: Started weewx.service - WeeWX.
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO __main__: Initializing weewxd 
>> version 5.0.2
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO __main__: Command line: 
>> /usr/share/weewx/weewxd.py /etc/weewx/weewx.conf
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO __main__: Using Python 3.11.2 
>> (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO __main__: Located at 
>> /usr/bin/python3
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO __main__: Platform 
>> Linux-6.6.20+rpt-rpi-2712-aarch64-with-glibc2.36
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO __main__: Locale: 'en_GB.UTF-8'
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO __main__: Entry path: 
>> /usr/share/weewx/weewxd.py
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO __main__: WEEWX_ROOT: /etc/weewx
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO __main__: Configuration file: 
>> /etc/weewx/weewx.conf
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO __main__: User module: 
>> /etc/weewx/bin/user
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO __main__: Debug: 0
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.engine: Loading station 
>> type GW1000 (user.gw1000)
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO user.gw1000: GatewayDriver: 
>> version is 0.6.1
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO user.gw1000:      device address 
>> is 192.168.7.206:45000
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO user.gw1000:      poll interval 
>> is 20 seconds
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO user.gw1000: GatewayService: 
>> version is 0.6.1
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO user.gw1000:      device address 
>> is 192.168.7.206:45000
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO user.gw1000:      poll interval 
>> is 20 seconds
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.engine: StdConvert target 
>> unit is 0x1
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.wxservices: StdWXCalculate 
>> will use data binding wx_binding
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.engine: Archive will use 
>> data binding wx_binding
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.engine: Record generation 
>> will be attempted in 'software'
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.engine: Using archive 
>> interval of 300 seconds (software record generation)
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.restx: StationRegistry: 
>> Station will be registered.
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.restx: Wunderground: 
>> Posting not enabled.
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.restx: PWSWeather: Data 
>> for station PROOF0FHUMBOLDT will be posted
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.restx: CWOP: Posting not 
>> enabled.
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.restx: WOW: Posting not 
>> enabled.
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.restx: AWEKAS: Posting not 
>> enabled.
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO user.mqtt: service version is 
>> 0.24
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.restx: MQTT: No config 
>> info. Skipped.
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.engine: 'pyephem' 
>> detected, extended almanac data is available
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO __main__: Starting up weewx 
>> version 5.0.2
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.engine: Using binding 
>> 'wx_binding' to database 'weewx.sdb'
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.manager: Starting backfill 
>> of daily summaries
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.manager: Daily summaries 
>> up to date
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO weewx.engine: Starting main 
>> packet loop.
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO user.gw1000: Using 't_rainyear' 
>> for rain total
>> Jun 01 19:18:18 rpi weewxd[200894]: INFO user.gw1000: skipping rain 
>> measurement of 282.6: no last rain
>> Jun 01 19:18:19 rpi weewxd[200894]: INFO user.gw1000: Using 't_rainyear' 
>> for rain total
>> Jun 01 19:18:19 rpi weewxd[200894]: INFO user.gw1000: skipping rain 
>> measurement of 282.6: no last rain
>> Jun 01 19:20:19 rpi weewxd[200894]: INFO weewx.manager: Added record 
>> 2024-06-01 19:20:00 CDT (1717287600) to database 'weewx.sdb'
>> Jun 01 19:20:19 rpi weewxd[200894]: INFO weewx.manager: Added record 
>> 2024-06-01 19:20:00 CDT (1717287600) to daily summary in 'weewx.sdb'
>> Jun 01 19:20:20 rpi weewxd[200894]: INFO weewx.restx: PWSWeather: 
>> Published record 2024-06-01 19:20:00 CDT (1717287600)
>> Jun 01 19:20:20 rpi weewxd[200894]: INFO weewx.cheetahgenerator: 
>> Generated 8 files for report SeasonsReport in 0.58 seconds
>> Jun 01 19:20:21 rpi weewxd[200894]: INFO weewx.imagegenerator: Generated 
>> 18 images for report SeasonsReport in 0.23 seconds
>> Jun 01 19:20:21 rpi weewxd[200894]: INFO weewx.reportengine: Copied 5 
>> files to /var/www/html/weewx
>> Jun 01 19:20:21 rpi weewxd[200894]: INFO weewx.cheetahgenerator: 
>> Generated 6 files for report SmartphoneReport in 0.05 seconds
>> Jun 01 19:20:21 rpi weewxd[200894]: INFO weewx.imagegenerator: Generated 
>> 6 images for report SmartphoneReport in 0.05 seconds
>> Jun 01 19:20:21 rpi weewxd[200894]: INFO weewx.reportengine: Copied 6 
>> files to /var/www/html/weewx/smartphone
>> Jun 01 19:20:21 rpi weewxd[200894]: INFO weewx.cheetahgenerator: 
>> Generated 1 files for report MobileReport in 0.02 seconds
>> Jun 01 19:20:21 rpi weewxd[200894]: INFO weewx.imagegenerator: Generated 
>> 4 images for report MobileReport in 0.03 seconds
>> Jun 01 19:20:21 rpi weewxd[200894]: INFO weewx.reportengine: Copied 2 
>> files to /var/www/html/weewx/mobile
>> Jun 01 19:20:21 rpi weewxd[200894]: INFO weewx.cheetahgenerator: 
>> Generated 13 files for report StandardReport in 0.50 seconds
>> Jun 01 19:20:22 rpi weewxd[200894]: INFO weewx.imagegenerator: Generated 
>> 12 images for report StandardReport in 0.11 seconds
>> Jun 01 19:20:22 rpi weewxd[200894]: INFO weewx.reportengine: Copied 13 
>> files to /var/www/html/weewx
>> Jun 01 19:20:22 rpi weewxd[200894]: INFO user.belchertown: version 1.3.1
>> Jun 01 19:20:23 rpi weewxd[200894]: INFO weewx.cheetahgenerator: 
>> Generated 12 files for report Belchertown in 1.06 seconds
>> Jun 01 19:20:23 rpi weewxd[200894]: INFO weewx.reportengine: Copied 39 
>> files to /var/www/html/weewx/belchertown
>> Jun 01 19:20:23 rpi weewxd[200894]: ERROR weeutil.rsyncupload: rsync 
>> reported errors. Original command: ['rsync', '--archive', '--stats', 
>> '--delete', '-e', 'ssh -p 65002', '/var/www/html/weewx/belchertown/', 
>> 'USERidREDACTED@IP_ADDRESS:public_html']
>> Jun 01 19:20:23 rpi weewxd[200894]: ERROR weeutil.rsyncupload: **** Host 
>> key verification failed.
>> Jun 01 19:20:23 rpi weewxd[200894]: ERROR weeutil.rsyncupload: **** 
>> rsync: connection unexpectedly closed (0 bytes received so far) [sender]
>> Jun 01 19:20:23 rpi weewxd[200894]: ERROR weeutil.rsyncupload: **** rsync 
>> error: unexplained error (code 255) at io.c(231) [sender=3.2.7]
>> ^C
>>
>> ___________
>> Manually coping the html files work after entering the password, but who 
>> wants to do that every five minutes :)
>>
>> "Host key verification failed" is obviously my problem but cannot figure 
>> it out. Any pointers, directions or well-wishes would be greatly 
>> appreciated! Almost there......
>>
>> Thanks!
>>
>>
>>
>>
>>
>> On Friday, July 21, 2023 at 5:14:24 AM UTC-5 Tomasz Lewicki wrote:
>>
>>> Thank you for replies.
>>>
>>> @Warren Gill: yes, I was thinking about crontab but wanted to use 
>>> built-in solution. Of course crontab is good as backup solution.
>>>
>>> @vince: you're right, I didn't think about it from this side. Just for 
>>> record for future seekers:
>>>
>>> 1. I logged as root ('sudo -i' from 'pi' account)
>>> 2. generated SSH keys ('ssh-keygen')
>>> 3. copied them to external server ('ssh-copy-id 
>>> ace...@external.domain.com -p 222')
>>> 4. copied /home/pi/.ssh/config to /root/.ssh/config
>>> 5. changed owner of 'config' ('chown root:root /root/.ssh/config')
>>> 6. waited for next synchronization
>>> 7. smiled because everything worked as expected :)
>>>
>>> czwartek, 20 lipca 2023 o 23:24:20 UTC+2 vince napisał(a):
>>>
>>>> Unless you did something custom, weewx runs as root, not as user 'pi'.
>>>>
>>>> You need 'root' to be able to ssh into the remote system with the 
>>>> user+key you specified.  Same procedure you did to get 'pi' to work, just 
>>>> do it after sudo(ing) to root so you set the 'root' account up similiarly. 
>>>>   Two minute thing to do.
>>>>
>>>> On Thursday, July 20, 2023 at 1:06:54 PM UTC-7 Tomasz Lewicki wrote:
>>>>
>>>>> rsync: host key verification failed
>>>>>
>>>>> Dear Weewx users.
>>>>>
>>>>> I'm trying to send files generated by Weewx to external webserver 
>>>>> (paid hosting) with rsync. I'm familiar with rsync, ssh and Linux. Weewx 
>>>>> is 
>>>>> running on Raspberry Pi as 'pi' user. Here are my configs:
>>>>>
>>>>> /home/pi/.ssh/config
>>>>>
>>>>> Host CF
>>>>> #    HostName external.domain.com <- here of course is real web 
>>>>> address
>>>>>     HostName 10.20.30.40 <- here of course is real IP
>>>>>     Port 222
>>>>>     User acetone <- this is my username on remote webserver (hosting)
>>>>>     
>>>>> /etc/weewx/weewx.conf
>>>>>
>>>>> (...)
>>>>>
>>>>> [[RSYNC]]
>>>>>         # rsync'ing to a webserver is treated as just another report
>>>>>         skin = Rsync
>>>>>         
>>>>>         # If you wish to use rsync, you must configure passwordless 
>>>>> ssh using
>>>>>         # public/private key authentication from the user account that 
>>>>> weewx
>>>>>         # runs to the user account on the remote machine where the 
>>>>> files
>>>>>         # will be copied.
>>>>>         #
>>>>>         # If you wish to use rsync, set "enable" to "true", then
>>>>>         # fill out server, user, and path.
>>>>>         # The server should appear in your .ssh/config file.
>>>>>         # The user is the username used in the identity file.
>>>>>         # The path is the destination directory, such as 
>>>>> /var/www/html/weather.
>>>>>         # Be sure that the user has write permissions on the 
>>>>> destination!
>>>>>         enable = true
>>>>>         server = external.domain.com
>>>>> port = 222
>>>>>         user = acetone
>>>>>         path = domains/external.domain.com/private_html/meteo/
>>>>>         
>>>>>         # To upload files from something other than what HTML_ROOT is 
>>>>> set
>>>>>         # to above, specify a different HTML_ROOT here.
>>>>>         #HTML_ROOT = /var/www/html/weewx
>>>>>         
>>>>>         # Rsync can be configured to remove files from the remote 
>>>>> server if
>>>>>         # they don't exist under HTML_ROOT locally. USE WITH CAUTION: 
>>>>> if you
>>>>>         # make a mistake in the remote path, you could could 
>>>>> unintentionally
>>>>>         # cause unrelated files to be deleted. Set to 1 to enable 
>>>>> remote file
>>>>>         # deletion, zero to allow files to accumulate remotely.
>>>>>         delete = 0
>>>>>
>>>>> (...)
>>>>>
>>>>> I can log in to external server with ssh (passwordless) with command:
>>>>>
>>>>> $ ssh -p 222 ace...@external.domain.com
>>>>>
>>>>> or just
>>>>>
>>>>> $ ssh CF <- this is host from .ssh/config
>>>>>
>>>>> I got error message from weewx:
>>>>>
>>>>> Jul 20 21:36:04 WeewxFR24 weewx[28079] DEBUG weeutil.rsyncupload: 
>>>>> rsyncupload: cmd: [['rsync', '--archive', '--stats', '-e', 'ssh -p 222', 
>>>>> '/var/www/html/weewx/', 'ace...@external.domain.com:~/domains/
>>>>> external.domain.com/private_html/meteo']]
>>>>> Jul 20 21:36:04 WeewxFR24 weewx[28079] ERROR weeutil.rsyncupload: 
>>>>> rsync reported errors. Original command: ['rsync', '--archive', 
>>>>> '--stats', 
>>>>> '-e', 'ssh -p 222', '/var/www/html/weewx/', 
>>>>> 'ace...@external.domain.com:~/domains/
>>>>> external.domain.com/private_html/meteo']
>>>>> Jul 20 21:36:04 WeewxFR24 weewx[28079] ERROR weeutil.rsyncupload: **** 
>>>>> Host key verification failed.
>>>>> Jul 20 21:36:04 WeewxFR24 weewx[28079] ERROR weeutil.rsyncupload: **** 
>>>>> rsync: connection unexpectedly closed (0 bytes received so far) [sender]
>>>>> Jul 20 21:36:04 WeewxFR24 weewx[28079] ERROR weeutil.rsyncupload: **** 
>>>>> rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.3]
>>>>>
>>>>> I can send single file or whole directory with this command applied 
>>>>> directly from CLI:
>>>>>
>>>>> $ rsync --archive --stats -e 'ssh external.domain.com -p 222 -l 
>>>>> acetone' /var/www/html/weewx/ CF:domains/
>>>>> external.domain.com/private_html/meteo/
>>>>>
>>>>> I can also send files with simpler command (no additional options for 
>>>>> -e ssh because they are in .ssh/config):
>>>>>
>>>>> $ rsync --archive --stats -e ssh /var/www/html/weewx/ CF:domains/
>>>>> external.domain.com/private_html/meteo/
>>>>>
>>>>> But *not* with:
>>>>>
>>>>> rsync --archive --stats -e ssh /var/www/html/weewx/ 
>>>>> ace...@external.domain.com:domains/
>>>>> external.domain.com/private_html/meteo
>>>>>
>>>>> And *not* with:
>>>>>
>>>>> rsync --archive --stats -e ssh /var/www/html/weewx/ 
>>>>> external.domain.com:domains/external.domain.com/private_html/meteo
>>>>>
>>>>> As you can see, if .ssh/config is properly filled with data, it is 
>>>>> much simpler to 'do' rsync. But why it works when executed manually but 
>>>>> not 
>>>>> from inside Weewx? Keys are valid if I can log in without password from 
>>>>> CLI. Maybe you could do [[RSYNC]] option more flexible and use 
>>>>> .ssh/config?
>>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to weewx-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/5e627dba-b0f7-44e9-b349-fac458484c95n%40googlegroups.com.

Reply via email to