AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-1317398

Manuel Jiménez's questions

Martin Hope
Manuel Jiménez
Asked: 2021-07-30 03:48:55 +0800 CST

如何在 AppScript 中获取 HMAC SHA1 哈希和 Base64 编码?

  • 5

我目前有一小段代码可以在 R Studio 中获取授权字符串。我正在尝试在 App Script 中复制相同的功能,但我无法获得相同的结果。

R Studio 中的代码是:

library(digest)
library(openssl)

sec_key <- "secret-key"
checksum_string <- "checksum-string"
checksum <- base64_encode(hmac(sec_key, checksum_string, algo = "sha1", raw = T))

Result after hash: 32 e1 f7 da c6 5b 16 fe 02 5b 90 f9 98 65 2b 2c 2e 22 c9 ad
Result after base64 encode: "MuH32sZbFv4CW5D5mGUrLC4iya0="

同时,我在 AppScript 中使用的代码是:

function get_checksum{
   var sec_key = "secret-key"
   var checksum_string = "checksum-string"
   var hash = Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_1, sec_key, checksum_string)
   var checksum = Utilities.base64Encode(hash)
}
Result after hash: [107.0, -81.0, -127.0, -126.0, -93.0, 108.0, 110.0, -26.0, -29.0, 70.0, -90.0, -44.0, -100.0, -107.0, 25.0, 54.0, 86.0, 22.0, -82.0, -97.0]
Result after base64 encoding: "a6+BgqNsbubjRqbUnJUZNlYWrp8="

如您所见,我没有得到相同的结果。

我猜应该有一个函数用于哈希,以便我可以获得“原始”结果,但我不知道它并且无法找到它。

如果有人能指出我正确的方向,我将不胜感激。

rstudio base64
  • 1 个回答
  • 368 Views
Martin Hope
Manuel Jiménez
Asked: 2021-04-23 19:38:34 +0800 CST

如何使用 R 通过 SSH 隧道连接到服务器上的 PostgreSQL 数据库?

  • 5

我正在尝试通过 SSH 隧道将 RStudio 会话连接到服务器(数字海洋)上的 PostgreSQL 数据库。我是 SSH 连接的新手,特别是使用 R。

系统信息:

在我的本地计算机上,我使用的是 Windows 10 x64。我已经安装了 PostgreSQL 13、R 4.0.3、OpenSSH Server 和 OpenSSHD Client(对于 Open SSH,我使用的是标准的 Windows 版本)。

在 Digital Ocean 服务器上,我有 Ubuntu 20.04.1、postgresql 12+214ubuntu0.1、​​openssh-server 1:8.2p1-4ubuntu0.2

一般背景:

首先,我已经生成了一个 .PEM 密钥对(我将把私钥的密码称为“passp”)私钥并在 Digital Ocean Server(从现在开始的 DO Server)中启用公钥。此外,DO 服务器已配置为允许 SSH 连接(例如 ip:123.456.789.01 和端口:1234)。

通过上面提到的配置,我能够将 PgAdmin 连接到 DO 服务器中的 Postgresql 数据库。我使用以下参数登录到数据库:

  • 数据库名称 = “数据库”
  • doserver_user = "根"
  • db_user = "用户名"
  • passqord = "密码"

我已经设法使用 CMD 应用程序从我的 PC 连接到 DO 服务器。我正在使用的命令如下:

ssh -i "C:/path/to/ssh/key" -L 5555:127.0.0.1:1234 [email protected]

当这个连接打开时,我当然可以访问 DO Server。为了验证本地端口 5555 是否正在运行,我运行了命令netstat -ao | find "5555"并收到以下信息:

 TCP    127.0.0.1:5555         hp-PC:0                LISTENING       14132

在迁移到 R 之前,我仔细检查了 sshd_config 文件以确保 TCPForwarding 是允许的,并且 ListenAdress 是为 localhost (127.0.0.1) 配置的。我在我的 PC 和 DO 服务器上做了这个检查。

完成所有这些后,我去了 RStudio 并尝试使用以下代码连接到 DO 服务器上的 Postgresql 数据库:

library(DBI)                                   #DBI version 1.1.1
library(RPostgres)                             #RPostgres version 1.3.2.9000
con <- DBI::dbConnect(drv = RPostgres::Postgres(), 
                  dbname= "db",
                  host = "127.0.0.1",
                  port = "5555",         
                  user= "root",
                  password= "pwd")

我正在使用主机:“127.0.0.1”和端口“5555”,因为据我了解,它是正在侦听的端口,并且已经转发到 DO 服务器 IP (123.456.789.01)。

尝试和错误:

错误 1

我已经为 R 中的代码尝试了很多不同的选项,因此我遇到了几个错误。使用上面提到的初始代码,我收到以下错误:

Error: SSL error: wrong version number
expected authentication request from server, but received S

如果我将主机更改为“localhost”或将用户更改为“用户名”(我访问数据库的用户,而不是 DO 服务器),我也会收到相同的错误。

错误 2

我尝试在 R 代码中调用不同的端口(例如将端口更改为“5433”)以查看是否会发生某些事情并得到错误:

could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5433?

如果我关闭来自 CMD 应用程序的连接,或者如果我将 Host 的值更改为另一个 IP(例如 host = 111.222.333.44),也会发生此错误。

错误 3

作为一个绝望的举动,我尝试直接从 RStudio 创建一个连接。为此,我使用了以下内容:

library(ssh)                                                              #ssh version 0.7.0
session <- ssh::ssh_connect(host= "[email protected]:22", keyfile = "C:/path/to/ssh/key")
ssh::ssh_tunnel(session, port = local_port, target = serv_host)

并得到了结果:

/ Waiting for connection on port 5555...

由于 R 是单线程的,我无法从同一个会话(会话 A)运行 DBI::dbConnect。所以我开始了一个新会话(会话 B)并运行 DBI::dbConnect,如上所述。结果是:

#Session A
- Waiting for connetion on port 1090... client connected!
Error: libssh failure at 'channel_open_forward': Socket error: No error

#Session B
#No result, just got stuck processing

问

我只想能够将我 PC 中的 RStudio 连接到 DO 服务器上的 Postgresql 数据库。我真的不介意这是通过指出我在配置或代码中做错了什么来完成的,或者是否有完全不同的方式来做到这一点。

我将非常感谢您能给我的所有建议。

cmd.exe openssh
  • 2 个回答
  • 753 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve